Configurar bucket do AWS S3 para armazenamento remoto

O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos que oferece escalabilidade, disponibilidade de dados, segurança e desempenho líderes do setor. O serviço AWS S3 usa buckets ou containers para armazenamento de dados. Esta configuração requer que você crie um bucket privado. Para o Adobe Commerce na infraestrutura em nuvem, consulte Configurar armazenamento remoto para a infraestrutura do Commerce na nuvem.

WARNING
A Adobe desencoraja muito o uso de baldes públicos porque representa um sério risco à segurança.

Para habilitar o armazenamento remoto com o adaptador AWS S3:

  1. Faça logon no painel do Amazon S3 e crie um bucket privado.

  2. Configurar funções do AWS IAM. Como alternativa, gere as chaves de acesso e secreta.

  3. Desabilitar o armazenamento de banco de dados padrão.

    code language-bash
    bin/magento config:set system/media_storage_configuration/media_database 0
    
  4. Configure o Commerce para usar o bucket privado. Consulte Opções de armazenamento remoto para obter uma lista completa de parâmetros.

    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. Sincronizar arquivos de mídia com o armazenamento remoto.

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

Configurar Nginx

O Nginx requer configuração adicional para executar a Autenticação com a diretiva proxy_pass. Adicionar as seguintes informações de proxy ao arquivo 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";
}

Autenticação

Se você usar chaves de acesso e secretas em vez das funções do AWS IAM, deverá incluir o módulo ngx_aws_auth Nginx.

Permissões

A integração S3 depende da capacidade de gerar e armazenar imagens em cache no sistema de arquivos local. Portanto, as permissões de pasta para pub/media e diretórios semelhantes são as mesmas para S3 como são ao usar o armazenamento local.

Operações de arquivo

É altamente recomendável usar os métodos de adaptador de arquivo do Commerce na codificação ou no desenvolvimento de extensão, independentemente do tipo de armazenamento de arquivo. Ao usar S3 para armazenamento, não use operações de E/S de arquivo PHP nativo, como copy, rename ou file_put_contents, porque os arquivos S3 não estão localizados no sistema de arquivos. Consulte DriverInterface.php para ver exemplos de código.

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