A resposta de erro de REST - Amazon Simple Storage Service

A resposta de erro de REST

Se uma solicitação de REST resultar em um erro, a resposta HTTP terá:

  • Um documento de erro XML como o corpo da resposta

  • Content-Type: application/xml

  • O código de status HTTP 3xx, 4xx ou 5xx apropriado

O seguinte é um exemplo de uma resposta de erro de REST.

<?xml version="1.0" encoding="UTF-8"?> <Error> <Code>NoSuchKey</Code> <Message>The resource you requested does not exist</Message> <Resource>/mybucket/myfoto.jpg</Resource> <RequestId>4442587FB7D0A2F9</RequestId> </Error>

Para obter mais informações sobre erros do Amazon S3, visite ErrorCodeList.

Cabeçalhos de resposta

Os seguintes são cabeçalhos de resposta retornados por todas as operações:

  • x-amz-request-id: Um ID exclusivo atribuído a cada solicitação pelo sistema. No caso improvável de problemas com o Amazon S3, a Amazon pode usar esse ID para ajudar a resolver o problema.

  • x-amz-id-2: Um token especial que nos ajudará a solucionar problemas.

Resposta de erro

Quando uma solicitação do Amazon S3 está em erro, o cliente recebe uma resposta de erro. O formato exato de resposta de erro é específico à API: por exemplo, a resposta de erro de REST difere da resposta de erro de SOAP. Contudo, todas as respostas de erro têm elementos comuns.

nota

O suporte a SOAP via HTTP está obsoleto, mas o SOAP continua disponível via HTTPS. Os novos recursos do Amazon S3 não são compatíveis com SOAP. Em vez de SOAP, recomendamos usar a API REST ou os AWS SDKs.

Código de erro

O código de erro é uma sequência que identifica exclusivamente uma condição de erro. O objetivo desse código é ser lido e compreendido pelos programas que detectam e tratam erros por tipo. Muitos códigos de erro são comuns entre as APIs SOAP e REST, mas alguns são específicos à API. Por exemplo, NoSuchKey é universal, mas UnexpectedContent pode ocorrer apenas em resposta a uma solicitação inválida do REST. Em todos os casos, os códigos com falha de SOAP têm um prefixo, conforme indicado na tabela de códigos de erro, para que um erro de NoSuchKey seja realmente retornado em SOAP como Client.NoSuchKey.

nota

O suporte a SOAP via HTTP está obsoleto, mas o SOAP continua disponível via HTTPS. Os novos recursos do Amazon S3 não são compatíveis com SOAP. Em vez de SOAP, recomendamos usar a API REST ou os AWS SDKs.

A mensagem de erro

A mensagem de erro contém uma descrição genérica da condição do erro em inglês. Ela é destinada ao público humano. Programas simples exibem a mensagem diretamente ao usuário final se encontrarem uma condição de erro que não conhecem ou não tratam. Programas sofisticados com tratamento de erro mais exaustivo e internacionalização própria são mais de prováveis de ignorar a mensagem de erro.

Detalhes adicionais

Muitas respostas de erro contêm dados estruturados adicionais para serem lidos e compreendidos pelo desenvolvedor que diagnostica erros de programação. Por exemplo, se você enviar um cabeçalho Content-MD5 com uma solicitação PUT de REST que não corresponde ao resumo calculado no servidor, você receberá um erro BadDigest. A resposta do erro também inclui como elementos de detalhes o resumo que calculamos, e o resumo que você nos informou para esperar. Durante o desenvolvimento, você pode usar essas informações para diagnosticar o erro. Em produção, um programa bem-comportado pode incluir essas informações em seu log de erros.