Ir para o conteúdo

Como posso solucionar o erro 404 NoSuchKey do Amazon S3?

4 minuto de leitura
0

Quando os usuários tentam acessar objetos no meu bucket do Amazon Simple Storage Service (Amazon S3), eles recebem uma mensagem de erro 404 NoSuchKey.

Resolução

Observação: se você receber mensagens de erro ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

O Amazon S3 pode retornar erros 404 se o objeto solicitado estiver ausente do bucket. Antes de os usuários realizarem solicitações GET ou HEAD para um objeto, verifique se ele está disponível no bucket de diretório ou de uso geral do seu S3.

Observação: a solução descrita neste artigo se aplica somente aos buckets de diretório e aos buckets de uso geral do Amazon S3.

Para verificar se um objeto está disponível em um bucket, verifique o conteúdo do bucket no console do Amazon S3. Também é possível usar a AWS Command Line Interface (AWS CLI) para executar o comando head-object:

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

Observação: substitua awsexamplebucket pelo nome do seu bucket e object.jpg pelo nome do seu objeto.

O Amazon S3 oferece uma forte consistência de leitura após gravação em todas as aplicações. Depois da gravação, substituição ou exclusão de um objeto, qualquer solicitação de leitura recebe imediatamente a versão mais recente do objeto. O Amazon S3 também fornece uma forte consistência para operações de lista. Depois de uma gravação, é possível listar os objetos em um bucket. Para obter mais informações sobre a consistência do Amazon S3, consulte Amazon S3 Strong Consistency (Forte consistência do Amazon S3).

Se o objeto solicitado estiver disponível no bucket do S3 e você receber uma mensagem de erro “404 NoSuchKey” novamente, verifique o seguinte:

  • Confirme se a solicitação corresponde exatamente ao 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 Myimage.jpg for solicitado, o solicitante receberá uma mensagem de erro “404 NoSuchKey”.

  • Confirme se o caminho solicitado corresponde ao caminho para o objeto. Caso contrário, o solicitante receberá uma mensagem de erro “404 NoSuchKey”.

  • Se o caminho para o objeto contiver espaços, certifique-se de que a solicitação esteja usando a sintaxe correta para reconhecer o caminho. Por exemplo, se você usar a AWS CLI para baixar um objeto para sua máquina Windows, deve usar aspas antes e depois do caminho do objeto. O caminho do objeto deve ser semelhante ao exemplo a seguir:

    aws s3 cp "s3://awsexamplebucket/Backup Copy Job 4/3T000000.vbk"

    Observação: substitua o caminho do objeto pelo caminho do seu objeto.

  • 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 nome de objeto test com um retorno de carro no final é exibido como test%0A no console do Amazon S3. Para verificar se há caracteres especiais nos nomes dos objetos, execute o comando list-objects-v2 com o parâmetro --output json. A saída JSON torna visíveis os caracteres como retornos (\r). Se o nome de um objeto tiver um caractere especial que não esteja visível, remova o caractere do nome do objeto. Tente acessar o objeto novamente.

  • (Opcional) É possível ativar o registro em log de acesso ao servidor para verificar os registros de solicitação com mais detalhes em busca de problemas que possam causar um erro “404 NoSuchKey”.

Observação: se um objeto estiver ausente do seu bucket de uso geral e o solicitante não tiver acesso a s3:ListBucket, ele receberá uma mensagem de erro “403 Access Denied”. Se você receber uma mensagem de erro “403 Access Denied”, resolva o problema relacionado ao objeto ausente.

Informações relacionadas

Solucionar erros de acesso negado (403 Forbidden) no Amazon S3

AWS OFICIALAtualizada há um ano