閱讀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-阿裏雲