阅读451 返回首页    go 微信


OSS错误响应__API 参考_对象存储 OSS-阿里云

当用户访问OSS出现错误时,OSS会返回给用户相应的错误码和错误信息,便于用户定位问题,并做出适当的处理。

OSS的错误响应格式

当用户访问OSS出错时,OSS会返回给用户一个合适的3xx,4xx或者5xx的HTTP状态码;以及一个application/xml格式的消息体。

错误响应的消息体例子:

  1. <?xml version="1.0" ?>
  2. <Error xmlns=”https://doc.oss-cn-hangzhou.aliyuncs.com”>
  3. <Code>
  4. AccessDenied
  5. </Code>
  6. <Message>
  7. Query-string authentication requires the Signature, Expires and OSSAccessKeyId parameters
  8. </Message>
  9. <RequestId>
  10. 1D842BC5425544BB
  11. </RequestId>
  12. <HostId>
  13. oss-cn-hangzhou.aliyuncs.com
  14. </HostId>
  15. </Error>

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

  • Code:OSS返回给用户的错误码。
  • Message:OSS给出的详细错误信息。
  • RequestId:用于唯一标识该次请求的UUID;当你无法解决问题时,可以凭这个RequestId来请求OSS开发工程师的帮助。
  • HostId:用于标识访问的OSS集群,与用户请求时使用的Host一致。

其他特殊的错误信息元素请参照每个请求的具体介绍。  

OSS的错误码

OSS的错误码列表如下:

错误码 描述 HTTP状态码
AccessDenied 拒绝访问 403
BucketAlreadyExists Bucket已经存在 409
BucketNotEmpty Bucket不为空 409
EntityTooLarge 实体过大 400
EntityTooSmall 实体过小 400
FieldItemTooLong Post请求中表单域过大 400
FilePartInterity 文件Part已改变 400
FilePartNotExist 文件Part不存在 400
FilePartStale 文件Part过时 400
IncorrectNumberOfFilesInPOSTRequest Post请求中文件个数非法 400
InvalidArgument 参数格式错误 400
InvalidAccessKeyId AccessKeyId不存在 403
InvalidBucketName 无效的Bucket名字 400
InvalidDigest 无效的摘要 400
InvalidEncryptionAlgorithmError 指定的熵编码加密算法错误 400
InvalidObjectName 无效的Object名字 400
InvalidPart 无效的Part 400
InvalidPartOrder 无效的part顺序 400
InvalidPolicyDocument 无效的Policy文档 400
InvalidTargetBucketForLogging Logging操作中有无效的目标bucket 400
InternalError OSS内部发生错误 500
MalformedXML XML格式非法 400
MalformedPOSTRequest Post请求的body格式非法 400
MaxPOSTPreDataLengthExceededError Post请求上传文件内容之外的body过大 400
MethodNotAllowed 不支持的方法 405
MissingArgument 缺少参数 411
MissingContentLength 缺少内容长度 411
NoSuchBucket Bucket不存在 404
NoSuchKey 文件不存在 404
NoSuchUpload Multipart Upload ID不存在 404
NotImplemented 无法处理的方法 400
PreconditionFailed 预处理错误 412
RequestTimeTooSkewed 发起请求的时间和服务器时间超出15分钟 403
RequestTimeout 请求超时 400
RequestIsNotMultiPartContent Post请求content-type非法 400
SignatureDoesNotMatch 签名错误 403
TooManyBuckets 用户的Bucket数目超过限制 400

OSS不支持的操作

如果试图以OSS不支持的操作来访问某个资源,返回405 Method Not Allowed错误。

错误请求示例:

  1. ABC /1.txt HTTP/1.1
  2. Host: bucketname.oss-cn-shanghai.aliyuncs.com
  3. Date: Thu, 11 Aug 2016 03:53:40 GMT
  4. Authorization: signatureValue

返回示例:

  1. HTTP/1.1 405 Method Not Allowed
  2. Server: AliyunOSS
  3. Date: Thu, 11 Aug 2016 03:53:44 GMT
  4. Content-Type: application/xml
  5. Content-Length: 338
  6. Connection: keep-alive
  7. x-oss-request-id: 57ABF6C8BC4D25D86CBA5ADE
  8. Allow: GET DELETE HEAD PUT POST OPTIONS
  9. <?xml version="1.0" encoding="UTF-8"?>
  10. <Error>
  11. <Code>MethodNotAllowed</Code>
  12. <Message>The specified method is not allowed against this resource.</Message>
  13. <RequestId>57ABF6C8BC4D25D86CBA5ADE</RequestId>
  14. <HostId>bucketname.oss-cn-shanghai.aliyuncs.com</HostId>
  15. <Method>abc</Method>
  16. <ResourceType>Bucket</ResourceType>
  17. </Error>

注意:如果访问的资源是 /bucket/, ResourceType应该是bucket,如果访问的资源是 /bucket/object,ResourceType应该是object。  

OSS操作支持但参数不支持的操作

如果在OSS合法的操作中,添加了OSS不支持的参数(例如在PUT的时候,加入If-Modified-Since参数),OSS会返回400 Bad Request错误

错误请求示例:

  1. PUT /abc.zip HTTP/1.1
  2. Host: bucketname.oss-cn-shanghai.aliyuncs.com
  3. Accept: */*
  4. Date: Thu, 11 Aug 2016 01:44:50 GMT
  5. If-Modified-Since: Thu, 11 Aug 2016 01:43:51 GMT
  6. Content-Length: 363

返回示例:

  1. HTTP/1.1 400 Bad Request
  2. Server: AliyunOSS
  3. Date: Thu, 11 Aug 2016 01:44:54 GMT
  4. Content-Type: application/xml
  5. Content-Length: 322
  6. Connection: keep-alive
  7. x-oss-request-id: 57ABD896CCB80C366955187E
  8. x-oss-server-time: 0
  9. <?xml version="1.0" encoding="UTF-8"?>
  10. <Error>
  11. <Code>NotImplemented</Code>
  12. <Message>A header you provided implies functionality that is not implemented.</Message>
  13. <RequestId>57ABD896CCB80C366955187E</RequestId>
  14. <HostId>bucketname.oss-cn-shanghai.aliyuncs.com</HostId>
  15. <Header>If-Modified-Since</Header>
  16. </Error>

最后更新:2016-11-23 17:16:08

  上一篇:go DeleteLiveChannel__关于LiveChannel的操作_API 参考_对象存储 OSS-阿里云
  下一篇:go 登录 OSS 管理控制台__控制台用户指南_对象存储 OSS-阿里云