Feb 14, 2017 AWS English
Fake S3 是一個以 Ruby 語言開發的輕量級工具,它可以讓我們在非正式環境下模擬及測試 S3 服務,所以你可以在自己的機器上透過不同的 SDK (例如:boto3、AWS SKD for PHP) 去測試 S3 的 API。本篇文章將介紹如何在 macOS 上設定與使用 Fake S3 。
將下來我們將使用 Docker 來啟用 Fake S3,所以你需要確認你的機器上已經安裝 Docker。通常為了加速開發速度,用 Docker 是比較方便且一致。若你不想使用 Docker 而想要直接安裝 Fake S3 可以利用以下指令來安裝:
gem install fakes3
透過 Docker 來啟用 Fake S3 相當方便,指令如下:
# Run Fake S3 as a standalone service, and open the port 4569
docker run -d \
-p 4569:4569 \
--name s3 \
lphoward/fake-s3
要利用 Fake S3 來測試你的應用程式,你只需要在初始化 Client 物件時修改 AWS 相關參數即可。以下分別為使用 Python 與 PHP 的範例:
# Python 範例
from boto3 import client
s3_client = client(
service_name='s3',
endpoint_url='http://your-fake-s3-ip:4569',
region_name='',
aws_access_key_id='',
aws_secret_access_key=''
)
# PHP 範例
use Aws\S3\S3Client;
use Aws\Exception\S3Exception;
$fake_s3_settings = [
'version' => 'latest',
'region' => '',
'endpoint' => 'http://your-fake-s3-ip:4569',
'credentials' => [
'key' => '',
'secret' => ''
]
];
$s3_client = new S3Client($fake_s3_settings);
若設定、啟用無誤,你所上傳的檔案會被放置於容器內的 /fakes3_root 資料夾。你檔案的路徑應該像這樣: /fakes3_root/bucket_name/path/to/your/file。
若對於文章內容有任何建議與指正,非常歡迎你告訴我或者與我一起討論 ! :)
zeckli.devforgalaxy@gmail.com © 2015-2019 zeckli, thanks to Jekyll and GitHub.