REST 错误响应 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

REST 错误响应

如果 REST 请求导致错误,则 HTTP 回复将包含:

  • 作为响应正文的 XML 错误文档

  • Content-Type:应用程序/xml

  • 合适的 3xx、4xx 或 5xx HTTP 状态代码

下面是 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>

有关 Amazon S3 错误的更多信息,请参阅 ErrorCodeList

响应标头

下面是所有操作返回的响应标头:

  • x-amz-request-id: 系统分配给每个请求的唯一 ID。在极少的情况下,如果您在使用 Amazon S3 时遇到问题,Amazon 将使用此信息来帮助排查问题。

  • x-amz-id-2: 将帮助我们排查问题的特殊令牌。

错误响应

若 Amazon S3 请求出现错误,客户端将收到一个错误响应。准确的错误响应格式应该特定于 API:例如,REST 错误响应的格式和 SOAP 错误响应的格式不同。但是,所有错误响应都有一些共同的元素。

注意

HTTP 上的 SOAP 支持已弃用,但是仍可在 HTTPS 上使用。不支持将新 Amazon S3 功能用于 SOAP。我们建议您使用 REST API 或 Amazon 开发工具包。

错误代码

错误代码是用于唯一标识错误条件的字符串。这意味着按类型检测和处理错误的程序将读取和理解错误代码。许多错误代码在 SOAP 和 REST API 上都比较常见,但也有部分是特定于 API 的。例如,NoSuchKey 是通用的,但是 UnexpectedContent 仅在响应无效的 REST 请求时发生。在所有案例中,SOAP 错误代码会带有一个前缀 (如错误代码表格中所示),以便 NoSuchKey 错误实际将作为 Client.NoSuchKey 返回到 SOAP 中。

注意

HTTP 上的 SOAP 支持已弃用,但是仍可在 HTTPS 上使用。不支持将新 Amazon S3 功能用于 SOAP。我们建议您使用 REST API 或 Amazon 开发工具包。

错误消息

错误消息包含错误条件的常规描述 (英语)。它主要面向用户受众。如果用户遇到不知如何处理或不愿处理的错误条件,简单的程序将直接向最终用户显示消息。支持更详尽的错误处理和适当国际化的复杂程序更容易忽略错误消息。

更多详细信息

许多错误响应包含额外的结构化数据,旨在供开发人员阅读和理解以诊断编程错误。例如,如果您使用与服务器上计算出的摘要不匹配的 REST PUT 请求发送 Content-MD5 标头,您将收到 BadDigest 错误。错误响应还包括我们计算出的摘要的详细元素,以及预期内容的摘要。在开发过程中,您可以使用此信息诊断错误。在生产过程中,运行良好的程序可能会将此信息包含在其错误日志中。