使用 Fake S3 模擬及測試 Amazon S3 服務

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


啟用 Fake S3

透過 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

要利用 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.