La respuesta de error de REST - Amazon Simple Storage Service

La respuesta de error de REST

Si una solicitud REST genera un error, la respuesta HTTP incluye lo siguiente:

  • Un documento de error XML como cuerpo de la respuesta.

  • Tipo de contenido: aplicación/xml.

  • Un código de estado HTTP apropiado de 3xx, 4xx o 5xx.

A continuación se muestra un ejemplo de una respuesta de error 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 obtener más información acerca de los errores de Amazon S3, consulte ErrorCodeList.

Encabezados de respuesta

Los siguientes son encabezados de respuesta que devuelven todas las operaciones:

  • x-amz-request-id: Un ID único que el sistema asigna a cada solicitud. En el caso poco probable de que tenga problemas con Amazon S3, Amazon puede utilizar esto para ayudar a solucionar el problema.

  • x-amz-id-2: Un token especial que nos ayudará a solucionar los problemas.

Respuesta de error

Cuando se genera un error en una solicitud de Amazon S3, el cliente recibe una respuesta de error. El formato exacto de la respuesta de error es específico de la API: por ejemplo, la respuesta de error de REST difiere de la respuesta de error de SOAP. Sin embargo, todas las respuestas de error tienen elementos en común.

nota

La compatibilidad con SOAP por HTTP está obsoleta, pero SOAP aún se encuentra disponible con HTTPS. Las características nuevas de Amazon S3 no son compatibles con SOAP. En vez de usar SOAP, le recomendamos que utilice la API de REST o los SDK de AWS.

Código de error

El código de error es una cadena que identifica de forma exclusiva una condición de error. Está diseñado para que los programas que detectan y administran errores por tipo puedan leerlo y comprenderlo. Muchos códigos de error son comunes entre las API de SOAP y REST, pero algunos son específicos de la API. Por ejemplo, NoSuchKey es universal, pero UnexpectedContent se puede producir únicamente en respuesta a una solicitud REST no válida. En todos los casos, los códigos de falla de SOAP incluyen un prefijo, como se indica en la tabla de códigos de error, por lo que un error de NoSuchKey se devuelve efectivamente en SOAP como Client.NoSuchKey.

nota

La compatibilidad con SOAP por HTTP está obsoleta, pero SOAP aún se encuentra disponible con HTTPS. Las características nuevas de Amazon S3 no son compatibles con SOAP. En vez de usar SOAP, le recomendamos que utilice la API de REST o los SDK de AWS.

Mensaje de error

El mensaje de error contiene una descripción genérica de la condición de error en inglés. Está destinado a un público humano. Los programas simples muestran el mensaje directamente al usuario final si se detecta una condición de error que no sabe cómo controlar o no le interesa hacerlo. Los programas sofisticados con un control de errores más exhaustivo y una internacionalización adecuada tienen más probabilidades de ignorar el mensaje de error.

Más detalles

Muchas respuestas de error contienen datos estructurados adicionales diseñados para ser leídos y comprendidos por un desarrollador que diagnostica errores de programación. Por ejemplo, si envía un encabezado Content-MD5 con una solicitud PUT de REST que no coincide con el resumen calculado en el servidor, recibe el error BadDigest. La respuesta de error también incluye como elementos de detalle el resumen que calculamos y el resumen que usted nos anticipó. Durante el desarrollo, puede utilizar esta información para diagnosticar el error. En producción, un programa con buen comportamiento puede incluir esta información en el registro de error.