当用户访问OSS出现错误时,OSS会返回给用户一个HTTP状态码,以及application/xml格式的消息体,便于用户定位问题,并做出适当的处理。

错误响应消息体

错误响应的消息体示例如下:

<?xml version="1.0" ?>
<Error xmlns=”http://doc.oss-cn-hangzhou.aliyuncs.com”>
    <Code>
        AccessDenied
    </Code>
    <Message>
        Query-string authentication requires the Signature, Expires and OSSAccessKeyId parameters
    </Message>
    <RequestId>
        1D842BC54255****
    </RequestId>
    <HostId>
        oss-cn-hangzhou.aliyuncs.com
    </HostId>
</Error>

所有错误的消息体中都包含以下几个元素:

  • Code:OSS返回给用户的错误码。
  • Message:OSS给出的详细错误消息。
  • RequestId:用于唯一标识该次请求的UUID。您可以凭借此RequestId请求协助,排查并解决您遇到的问题。
  • HostId:用于标识访问的OSS集群,与用户请求时使用的Host一致。

错误请求和返回示例

如果在OSS支持的操作中添加了OSS不支持的参数,例如PUT操作中添加了If-Modified-Since参数,OSS将返回400 Bad Request错误。

错误请求示例如下:
PUT /abc.zip HTTP/1.1
Host: bucketname.oss-cn-shanghai.aliyuncs.com
Accept: */*
Date: Thu, 11 Aug 2019 01:44:50 GMT
If-Modified-Since: Thu, 11 Aug 2019 01:43:51 GMT
Content-Length: 363
返回示例如下:
HTTP/1.1 400 Bad Request
Server: AliyunOSS
Date: Thu, 11 Aug 2019 01:44:54 GMT
Content-Type: application/xml
Content-Length: 322
Connection: keep-alive
x-oss-request-id: 57ABD896CCB80C366955****
x-oss-server-time: 0
<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>NotImplemented</Code>
  <Message>A header you provided implies functionality that is not implemented.</Message>
  <RequestId>57ABD896CCB80C366955****</RequestId>
  <HostId>bucketname.oss-cn-shanghai.aliyuncs.com</HostId>
  <Header>If-Modified-Since</Header>
</Error>

更多OSS错误码信息,请参见OSS错误中心

常见错误排查

更多错误排查

请查阅OSS各手册中的“常见问题“章节获取更多错误排查信息。以下列举了常见的SDK和工具类错误排查: