[Somente PaaS]{class="badge informative" title="Aplica-se somente a projetos do Adobe Commerce na nuvem (infraestrutura do PaaS gerenciada pela Adobe) e a projetos locais."}

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
O Adobe desencoraja muito o uso de compartimentos públicos porque representa um sério risco à segurança.
Ao usar um bucket do S3 fornecido pelo cliente para armazenamento de ativos ou mídia, a Adobe não é responsável por problemas, perda de dados ou interrupções relacionadas à configuração, ao gerenciamento ou à operação do bucket do S3, e não oferece suporte a esses problemas. Toda solução de problemas e manutenção do bucket do S3 é de responsabilidade exclusiva do cliente.

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

NOTE
Essa abordagem não se aplica ao Adobe Commerce em projetos de infraestrutura em nuvem. O Nginx não pode ser configurado no Adobe Commerce na infraestrutura em nuvem. Consulte a documentação específica da nuvem para obter mais informações.

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