設定遠端儲存的AWS S3貯體

Amazon Simple Storage Service (Amazon S3)是物件儲存服務,提供領先業界的擴充性、資料可用性、安全性和效能。 AWS S3服務使用貯體或容器來儲存資料。 此設定需要您建立​ 私人 ​貯體。 如需雲端基礎結構上的Adobe Commerce,請參閱在雲端基礎結構上設定Commerce的遠端儲存空間

WARNING
Adobe強烈建議不要使用公用儲存貯體,因為這會帶來嚴重的安全風險。

若要使用AWS S3介面卡啟用遠端儲存

  1. 登入您的Amazon S3儀表板並建立​ 私人 ​貯體。

  2. 設定AWS IAM角色。 或者,產生存取和秘密金鑰。

  3. 停用預設資料庫儲存體。

    code language-bash
    bin/magento config:set system/media_storage_configuration/media_database 0
    
  4. 設定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
    
  5. 將媒體檔案與遠端儲存裝置同步。

    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作業,例如copyrenamefile_put_contents,因為S3檔案不在檔案系統中。 如需程式碼範例,請參閱DriverInterface.php

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c