Como posso solucionar o erro 404 “NoSuchKey” do Amazon S3?

3 minuto de leitura
0

Meus usuários estão tentando acessar objetos no meu bucket do Amazon Simple Storage Service (Amazon S3). No entanto, o Amazon S3 está retornando o erro 404 “NoSuchKey”. Como posso solucionar isso?

Resolução

O Amazon S3 geralmente retorna erros 404 se o objeto solicitado estiver ausente do bucket. Antes que os usuários façam solicitações GET ou HEAD para um objeto, verifique se o objeto foi criado e está disponível no bucket do S3.

Para verificar se um objeto está disponível em um bucket, você pode revisar o conteúdo do bucket no console do Amazon S3. Ou você pode executar o comando head-object usando a AWS Command Line Interface (AWS CLI):

aws s3api head-object --bucket awsexamplebucket --key object.jpg

Importante: se você receber erros ao executar comandos da AWS CLI, verifique se está usando a versão mais recente da AWS CLI.

Observe que o Amazon S3 oferece uma forte consistência de leitura pós-gravação para todos os aplicativos. Após a gravação bem-sucedida de um novo objeto ou a substituição ou exclusão de um objeto existente, qualquer solicitação de leitura subsequente recebe imediatamente a versão mais recente do objeto. O S3 também fornece uma forte consistência para operações de listas. Depois de gravar, você pode fazer uma listagem dos objetos em um bucket. Para obter mais informações sobre a consistência do S3, consulte Consistência.

Se o objeto solicitado estiver disponível no bucket do S3 por algum tempo e você receber um erro 404 noSuchKey novamente, verifique o seguinte:

  • Confirme se a solicitação corresponde exatamente ao nome do objeto, incluindo a capitalização do nome do objeto. As solicitações de objetos do S3 diferenciam maiúsculas de minúsculas. Por exemplo, se um objeto tiver o nome myimage.jpg, mas o Myimage.jpg for solicitado, o solicitante receberá um erro 404 NoSuchKey.
  • Confirme se o caminho solicitado corresponde ao caminho para o objeto. Caso contrário, o solicitante receberá um erro 404 NoSuchKey.
  • Se o caminho para o objeto contiver espaços, certifique-se de que a solicitação use a sintaxe correta para reconhecer o caminho. Por exemplo, se você estiver usando a AWS CLI para baixar um objeto para sua máquina Windows, deverá usar aspas ao redor do caminho do objeto. O caminho do objeto deve ter a seguinte aparência: aws s3 cp “s3://awsexamplebucket/Backup Copy Job 4/3T000000.vbk”.
  • Verifique se há caracteres especiais ou caracteres codificados em URL no nome do objeto que sejam difíceis de ver, como retornos de carro (\r) ou novas linhas (\n). Por exemplo, o teste de nome de objeto com um retorno de carro no final é exibido como test%0A no console do Amazon S3. Para verificar os nomes dos objetos em busca de caracteres especiais, você pode executar o comando list-objects-v2 com o parâmetro --output json. A saída JSON torna visíveis caracteres como returns (\r). Se o nome de um objeto tiver um caractere especial que nem sempre esteja visível, remova o caractere do nome do objeto. Em seguida, tente acessar o objeto novamente.
  • Opcionalmente, você pode ativar o registro de acesso ao servidor para revisar os registros de solicitação com mais detalhes em busca de problemas que possam estar causando o erro 404 NoSuchKey.

Observação: se um objeto estiver ausente do bucket e o solicitante não tiver acesso s3:ListBucket, o solicitante receberá um erro 403 Acesso negado. Se você receber um erro 403 Acesso negado, resolva o problema relacionado ao objeto ausente.


Informações relacionadas

Solução de problemas do Amazon S3

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos