AWS S3-emmertje voor externe opslag configureren

De Eenvoudige Dienst van de Opslag van Amazon (Amazon S3)is de dienst van de objecten opslag die industrie-leidende scalability, gegevensbeschikbaarheid, veiligheid, en prestaties aanbiedt. De AWS S3-service gebruikt emmers, of containers, voor gegevensopslag. Deze configuratie vereist u om a privé emmer tot stand te brengen. Voor Adobe Commerce op wolkeninfrastructuur, zie verre opslag voor Commerce op de infrastructuur van de Wolk vormen.

WARNING
Adobe ontmoedigt het gebruik van openbare emmers sterk, omdat het een ernstig veiligheidsrisico vormt.

om verre opslag met de adapter van AWS S3 toe te laten:

  1. Login aan uw Amazon S3 dashboard en creeer a privé emmer.

  2. Opstelling AWS IAMrollen. U kunt ook toegang en geheime sleutels genereren.

  3. Schakel de standaardopslag voor de database uit.

    code language-bash
    bin/magento config:set system/media_storage_configuration/media_database 0
    
  4. Configureer Commerce om het privéemmertje te gebruiken. Zie Verre opslagoptiesvoor een volledige lijst van parameters.

    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. Mediabestanden synchroniseren met externe opslag.

    code language-bash
    bin/magento remote-storage:sync
    

Nginx configureren

Nginx vereist extra configuratie om Authentificatie met de proxy_pass richtlijn uit te voeren. Voeg de volgende proxygegevens toe aan het nginx.conf -bestand:

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";
}

Verificatie

Als u toegang en geheime sleutels in plaats van AWS IAMrollen gebruikt, moet u de ngx_aws_auth module Nginxomvatten.

Machtigingen

De S3-integratie is afhankelijk van de mogelijkheid om cacheafbeeldingen te genereren en op te slaan op het lokale bestandssysteem. Daarom zijn de omslagtoestemmingen voor pub/media en gelijkaardige folders het zelfde voor S3 als wanneer het gebruiken van lokale opslag.

Bestandsbewerkingen

U wordt ten zeerste aangeraden om bij de ontwikkeling van de codering of extensie de methoden van de Commerce -bestandsadapter te gebruiken, ongeacht het type bestandsopslag. Wanneer u S3 gebruikt voor opslag, moet u geen native I/O-bewerkingen voor PHP-bestanden gebruiken, zoals copy , rename of file_put_contents , omdat S3-bestanden zich niet in het bestandssysteem bevinden. Zie DriverInterface.phpvoor codevoorbeelden.

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