O recurso Amazon S3 para Easy Digital Downloads (EDD) permite que você hospede seus arquivos de download em sua conta Amazon S3. É mais seguro e confiável do que armazenar arquivos diretamente em sua própria conta de hospedagem.
Este guia o orienta na criação de um usuário IAM na AWS, na conexão da sua conta Amazon S3 ao EDD e no uso do Amazon S3 depois que tudo estiver configurado.
Observação: Amazon S3 é um recurso Pro que requer pelo menos um passe Extended.
Habilitando Amazon S3
Para instalar o recurso Amazon S3 em sua loja EDD, vá para Downloads » Extensões, pesquise por Amazon S3 e clique em Instalar.

Veja Como Instalar uma Extensão? para mais informações sobre como instalar e ativar recursos.
Depois de ativado, você encontrará as configurações do Amazon S3 em Downloads » Configurações » Extensões » Amazon S3. Você inserirá suas credenciais da AWS lá depois de concluir as etapas abaixo.
Criando uma Conta IAM
Para conectar o Easy Digital Downloads à sua conta Amazon S3, você precisa criar um usuário IAM na AWS e anexar uma política de permissões a ele.
Após isso feito, você gerará uma chave de acesso e uma chave secreta para esse usuário, e então inserirá ambas em Downloads » Configurações » Extensões » Amazon S3 no seu site WordPress.
Faça login na sua conta Amazon S3
Se você ainda não tem uma conta AWS, crie uma em Amazon S3 antes de continuar.
Faça login na sua conta Amazon S3 e vá para a página de Usuários. Você pode encontrar esta página clicando no nome da sua conta no canto superior direito, depois em Credenciais de Segurança » Usuários em Gerenciamento de Acesso no lado esquerdo da página.
Configure seu usuário IAM
Se você já tem um usuário IAM que deseja usar, selecione esse usuário.
Adicionar um usuário
Se precisar de um novo, clique no botão Criar usuário e siga as instruções. Você precisará obter credenciais de segurança e anexar uma política de permissões ao usuário.

Definir detalhes do usuário
Insira um nome de usuário de sua escolha e clique em Próximo.

Definir permissões
Na próxima tela, você definirá as permissões do usuário.
- Selecione Anexar políticas diretamente.
- Na caixa Filtrar, insira “S3full” para restringir os resultados às políticas do Amazon S3.
- Marque a caixa para AmazonS3FullAccess.
- Pule a seção “Definir limite de permissões – opcional”.
- Clique em Próximo.

Deseja permissões mais restritas em vez de acesso total à conta? AmazonS3FullAccess concede acesso a todos os buckets e a todas as operações S3 na sua conta AWS. Veja Restringindo o Acesso a Buckets Específicos abaixo para uma política com escopo apenas para o bucket que o EDD usa.
Revisar e criar
Confirme se suas permissões correspondem às etapas acima e clique em Criar usuário.

Obtendo chaves de acesso
Você precisará de um usuário IAM configurado com as permissões das etapas acima. Se você já tem um usuário IAM com permissões AmazonS3FullAccess, pode usar esse.
Vá para o nome do usuário IAM que você criou, listado na sua página de Usuários da AWS. Selecione a aba Credenciais de Segurança, seguida por Criar chave de acesso.

Selecione Serviço de terceiros e marque Confirmar.

Na próxima tela, selecione Criar chave de acesso. Você não precisa adicionar uma tag de descrição.

Salve sua Chave de acesso e Chave de acesso secreta.

Observação: Você não poderá acessar a chave secreta novamente para este usuário, portanto, certifique-se de salvá-la em um local seguro. Se você perder as credenciais, precisará criar uma nova chave de acesso.
Seu usuário IAM agora deve ter permissão total para acessar e fazer upload de arquivos para o bucket S3. Isso fornece à sua loja EDD acesso aos seus arquivos e a capacidade de criar links de download seguros para os clientes.
Seu usuário IAM agora tem permissão para acessar e fazer upload de arquivos para o bucket S3, dando à sua loja EDD acesso aos seus arquivos e a capacidade de criar links de download seguros para os clientes.
Adicione sua Chave de acesso e Chave de acesso secreta nas configurações S3 da Amazon da sua loja EDD em Downloads » Configurações » Extensões » Amazon S3.

Se precisar de mais ajuda para criar usuários IAM ou anexar políticas, consulte o guia da Amazon sobre como criar usuários IAM.
Limitar Acesso a Buckets Específicos
Se sua conta S3 for usada para outros fins e você quiser limitar seu usuário IAM (o que sua loja EDD usa) a buckets específicos, crie uma política personalizada em vez de usar AmazonS3FullAccess.
Selecione Anexar políticas diretamente, seguido por Criar política.

Adicione os detalhes da política abaixo através do editor JSON. Substitua bucket-name-here pelo nome do bucket (ou buckets) que você deseja que sua loja EDD acesse.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:ListBucketMultipartUploads",
"s3:AbortMultipartUpload",
"s3:ListBucket",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::bucket-name-here",
"arn:aws:s3:::bucket-name-here/*"
]
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*"
}
]
}
Com esta política, todos os nomes dos seus buckets ainda são visíveis, mas apenas os buckets listados na seção Recurso são acessíveis. Se o EDD tentar acessar um bucket que não está na lista de Recursos, você verá um erro PHP.
Configuração do Amazon S3
Se você ainda não o fez, vá para Downloads » Configurações » Extensões » Amazon S3 para inserir suas chaves de acesso e secretas da Amazon S3.

Inserir um bucket padrão
Nesta tela, você também inserirá outras informações da conta, como seu Bucket Padrão da Amazon S3.

Este é o bucket padrão para onde você deseja que os arquivos sejam enviados. Para criar novos buckets ou ver uma lista dos seus buckets atuais, vá para o seu Console S3 (você precisará fazer login para acessá-lo).
Crie o bucket que você deseja usar como padrão. Você ainda pode escolher um bucket diferente por arquivo ao fazer o upload.
Definir permissões do bucket
Ative o Bloquear todo o acesso público para o seu bucket para restringir o acesso não autorizado aos arquivos. O EDD fornece acesso temporário aos arquivos para os clientes, portanto, o bucket em si não precisa ser público.

Inserir um endpoint Amazon S3 (Opcional)
O Endpoint da Amazon S3 é o endpoint que seu bucket usa.
Normalmente, você pode deixar este campo em branco. Se o seu site tiver problemas para acessar seu bucket, tente alterá-lo para o endpoint da região do seu bucket.
Encontre a região do seu bucket fazendo login na sua conta Amazon S3, clicando em S3 e verificando a coluna de região ao lado de cada bucket. Em seguida, encontre o endpoint correspondente na Documentação de Regiões S3 da Amazon.

Copie e cole esse endpoint no campo e salve.
O campo Endpoint da Amazon S3 também funciona com Cloudflare R2 e outros provedores de armazenamento compatíveis com S3, não apenas com a AWS. Se você estiver usando R2 ou um serviço semelhante, insira o endpoint dele aqui da mesma forma.
Tempo de validade do link (Opcional)
O último campo de configuração na tela de extensões EDD Amazon S3 é o Tempo de Validade do Link. Este é o número de minutos que o URL de download gerado dinamicamente permanece válido.
Quando um cliente clica em um link de download, o EDD gera uma nova URL temporária para o arquivo no Amazon S3. Esta configuração controla por quanto tempo essa URL é válida antes de expirar.
Se você deixar este campo em branco, o link permanecerá válido por 5 minutos por padrão.
Nome da pasta FES (Opcional)
Se você estiver usando Frontend Submissions juntamente com o Amazon S3, esta configuração controla como os arquivos do fornecedor são organizados em seu bucket S3. Escolha se os arquivos serão armazenados em pastas com o nome de usuário de cada fornecedor ou seu ID de usuário.
Veja Amazon S3 e Frontend Submissions para mais informações sobre como os dois recursos funcionam juntos.
Usando Amazon S3 com EDD
Você envia arquivos para um produto para download da mesma forma que antes, mas este recurso oferece duas novas abas no uploader de mídia: Upload para Amazon S3 e Biblioteca Amazon S3.

Enviando para Amazon S3 via EDD
Quando você envia um arquivo da aba Upload para Amazon S3, o Easy Digital Downloads o envia automaticamente para sua conta Amazon S3.
Qualquer arquivo que você enviar desta forma também é acessível a partir da sua Biblioteca de Mídia do WordPress, assim como qualquer outro arquivo de mídia.

Adicionando arquivos já na AWS ao EDD
Qualquer arquivo já no S3 é acessível a partir da sua Biblioteca de Mídia do WordPress através da aba Biblioteca Amazon S3 no uploader de mídia.

Você também pode adicionar arquivos ao campo URL do Arquivo manualmente.

O campo aceita alguns formatos diferentes:
- Formato do uploader de mídia:
nome-do-bucket/nome-do-arquivo.zip - URLs no estilo virtual-hosted: por exemplo,
https://nome-do-bucket.s3.amazonaws.com/nome-do-arquivo.zip - URLs no estilo de caminho: por exemplo,
https://s3.amazonaws.com/nome-do-bucket/nome-do-arquivo.zip - URLs de endpoint regional: por exemplo,
https://nome-do-bucket.s3.codigo-regiao.amazonaws.com/nome-do-arquivo.zip
Importante ⚠️
- Não copie e cole a URL diretamente da sua biblioteca Amazon S3 no campo URL do Arquivo. Isso causa um erro de Acesso Negado quando um cliente tenta baixar o arquivo. Use um dos formatos acima em vez disso.
- Todos os nomes de bucket e pasta em sua conta Amazon S3 devem estar em minúsculas e livres de caracteres especiais. Veja a documentação da Amazon sobre restrições de nomenclatura de bucket.
- Nem todas as versões do S3 estão disponíveis em todas as regiões. Este gráfico mostra quais estão disponíveis em sua região.
- Arquivos entregues através do Amazon S3 sempre entregam como Redirecionamento, mesmo que sua loja esteja configurada como Forçada.
Usando Amazon S3 com CFM
Se você usar Checkout Fields Manager juntamente com o Amazon S3, os arquivos que os clientes enviarem através dos formulários CFM no checkout serão enviados automaticamente para o seu bucket Amazon S3 e armazenados em uma pasta cfm/. Você não precisa configurar nada extra.
Assim que suas credenciais do Amazon S3 forem configuradas na aba Extensões » Amazon S3, isso acontecerá automaticamente para qualquer campo de upload de arquivo em um formulário do Checkout Fields Manager.
Forçando o Download de Arquivos
Às vezes, seu navegador tenta exibir ou reproduzir um arquivo em vez de baixá-lo, como abrir música ou vídeo diretamente no navegador. Geralmente, você pode corrigir isso com configurações em seu servidor web, mas arquivos armazenados no Amazon S3 ignoram completamente as configurações do seu servidor web.
Em vez disso, você precisa configurar isso diretamente no S3.
Observação: Esta configuração se aplica a arquivos ou pastas individuais, não a todo o bucket.
Abrindo propriedades do arquivo
Em seu bucket S3, encontre o arquivo com o qual deseja trabalhar, selecione-o e clique em Ações » Alterar metadados.
Clique em Adicionar metadados, defina o Tipo como Definido pelo sistema, a Chave como Content-Disposition, e o Valor como attachment. Clique em Salvar alterações.

Isso força o download do arquivo em vez de reproduzi-lo ou exibi-lo no navegador.
Solução de problemas e FAQs
Arquivos abrem no navegador em vez de serem baixados
Veja Forçar Downloads de Arquivos acima.
Os clientes podem ver o URL real da Amazon S3 e baixar o arquivo diretamente?
Não. Os clientes veem um URL apontando para sua própria loja. O EDD traduz a localização nos bastidores, para que o download funcione sem expor o URL de origem original da Amazon S3.
Erro: problema de certificado SSL: impossível obter certificado de emissor local
Isso significa que o certificado SSL no servidor do seu site é inválido ou está instalado incorretamente. Entre em contato com sua empresa de hospedagem e peça para eles verificarem se o certificado está instalado corretamente.
Erro: Acesso Negado
Isso significa que o ID da chave de acesso e a chave secreta que você está usando não têm as permissões necessárias para acessar seus buckets e recursos S3.
Para corrigir isso, anexe uma nova política de permissões ao usuário IAM. Veja Criando uma Conta IAM acima para as permissões corretas.
Você também pode ver este erro se copiou um URL diretamente do Amazon S3 e o colou no campo URL do arquivo do seu download.
Erro: RequestTimeTooSkewed
Isso acontece quando as configurações de fuso horário do seu servidor web estão mal configuradas. Entre em contato com sua empresa de hospedagem e peça para eles reconfigurarem as configurações de fuso horário.
Erro: SignatureDoesNotMatch
Se você vir este erro junto com "A assinatura da solicitação que calculamos não corresponde à assinatura que você forneceu", o nome do seu bucket provavelmente contém letras maiúsculas ou espaços. Renomeie seu bucket, ou crie um novo, usando apenas letras minúsculas e sem espaços.
Erro: NoSuchKey A chave especificada não existe
Isso acontece quando há um problema com a forma como o arquivo ou bucket é nomeado. Remova toda a pontuação e caracteres especiais do nome.
Por exemplo, altere test-file-one.mp4.zip para testfileone.zip .
Outros erros ou problemas ao carregar arquivos para a Amazon S3
Se você estiver tendo problemas para fazer upload de arquivos para o Amazon S3 ou acessar arquivos existentes, tente estas etapas:
- Verifique sua configuração de Endpoint do Amazon S3 em Downloads » Configurações » Extensões » Amazon S3. Certifique-se de que esteja configurado corretamente, incluindo a região certa. Veja Endpoint do Amazon S3 acima.
- Certifique-se de que o nome do seu arquivo esteja abaixo do limite de 1.024 caracteres. Veja documentação da Amazon sobre como formatar nomes de arquivos corretamente.
- Se você mudou recentemente para uma nova conta Amazon S3 e não consegue fazer upload de arquivos para o seu bucket, isso geralmente é temporário e se resolve em poucas horas. Veja documentação da Amazon para mais informações.
- Ainda preso? Entre em contato com o suporte com a mensagem de erro exata ou o comportamento que você está vendo.
Atualizações de licença de software falhando com “Download falhou. Erro cURL 8: Comprimento do conteúdo inválido: valor”
Isso geralmente significa que o recurso Amazon S3 não está forçando downloads de redirecionamento. Tente definir o Método de Download como Forçado.
Cliente vê “Falha na atualização: Download falhou. Erro interno do servidor” ao atualizar um plugin
Confirme se o arquivo de origem usado para atualizações automáticas está selecionado nas configurações de licenciamento do download.
Você provavelmente verá este erro fatal de PHP no log de erros de PHP da sua loja:
Erro fatal de PHP: Lançada InvalidArgumentException: Encontrados 2 erros ao validar a entrada fornecida para a operação GetObject: [Key] está faltando e é um parâmetro obrigatório [Key] esperava que o comprimento da string fosse >= 1, mas encontrou comprimento de string de 0 em /home/ph198/public_html/wp-content/plugins/edd-amazon-s3/vendor/aws/aws-sdk-php/src/Api/Validator.php:65
