前置作業
此篇內容主要是使用 Docker 來啟用 Fake S3,所以你需要確認你的機器上已經安裝 Docker (參考如何安裝 Docker)。通常為了加速開發,用 Docker 是比較方便且一致。若你不想使用 Docker 而想要直接安裝 Fake S3 可以利用以下指令來安裝:
gem install fakes3
啟用 Fake S3
透過 Docker 來啟用 Fake S3 相當方便,使用指令:
# 啟用 Fake S3,並指定 port 為 4569
docker run -d \
-p 4569:4569 \
--name s3 \
lphoward/fake-s3
測試 Fake S3
測試 Fake S3 就如同你如何使用 Aamazon S3 的 SDK 與 API 一樣,唯一不同的就是你需要指定 S3 的參數,以下為 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);
看過範例,就可以知道你幾乎不需要更改程式,而是將 Endpoint 指向 Fake S3 的位址就可以開始測試了。
資料存放位置
若 Fake S3 透過 Docker 運作無誤,你會發現你成功上傳的檔案都存放在容器內的 /fakes3_root 資料夾底下,存放路徑結構也會完全依照 S3 的規則。
Environment :
・ macOS
Reference :
・ Fake S3
・ Fake S3 Dockerfile