設定遠端儲存的AWS S3貯體
Amazon Simple Storage Service (Amazon S3)是物件儲存服務,提供領先業界的擴充性、資料可用性、安全性和效能。 AWS S3服務使用貯體或容器來儲存資料。 此設定需要您建立 私人 貯體。 如需雲端基礎結構上的Adobe Commerce,請參閱在雲端基礎結構上設定Commerce的遠端儲存空間。
WARNING
Adobe強烈建議不要使用公用儲存貯體,因為這會帶來嚴重的安全風險。
若要使用AWS S3介面卡啟用遠端儲存:
-
登入您的Amazon S3儀表板並建立 私人 貯體。
-
設定AWS IAM角色。 或者,產生存取和秘密金鑰。
-
停用預設資料庫儲存體。
code language-bash bin/magento config:set system/media_storage_configuration/media_database 0
-
設定Commerce以使用私人貯體。 如需完整的引數清單,請參閱遠端儲存選項。
code language-bash bin/magento setup:config:set --remote-storage-driver="aws-s3" --remote-storage-bucket="<bucket-name>" --remote-storage-region="<region-name>" --remote-storage-prefix="<optional-prefix>" --remote-storage-key=<optional-access-key> --remote-storage-secret=<optional-secret-key> -n
-
將媒體檔案與遠端儲存裝置同步。
code language-bash bin/magento remote-storage:sync
設定Nginx
Nginx需要額外的設定,才能使用proxy_pass
指示詞執行驗證。 將下列Proxy資訊新增至nginx.conf
檔案:
nginx.conf
location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
# Proxying to AWS S3 storage.
resolver 8.8.8.8;
set $bucket "<s3-bucket-name>";
proxy_pass https://s3.amazonaws.com/$bucket$uri;
proxy_pass_request_body off;
proxy_pass_request_headers off;
proxy_intercept_errors on;
proxy_hide_header "x-amz-id-2";
proxy_hide_header "x-amz-request-id";
proxy_hide_header "x-amz-storage-class";
proxy_hide_header "Set-Cookie";
proxy_ignore_headers "Set-Cookie";
}
驗證
如果您使用存取和秘密金鑰而非AWS IAM角色,則必須包含ngx_aws_auth
Nginx模組。
許可權
S3整合仰賴在本機檔案系統上產生及儲存快取影像的能力。 因此,pub/media
和類似目錄的檔案夾許可權與S3使用本機儲存時的許可權相同。
檔案作業
強烈建議您在程式碼或擴充功能開發中使用Commerce檔案配接器方法,無論檔案儲存型別為何。 使用S3進行儲存時,請勿使用原生PHP檔案I/O作業,例如copy
、rename
或file_put_contents
,因為S3檔案不在檔案系統中。 如需程式碼範例,請參閱DriverInterface.php。
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c