REST 錯誤回應 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

REST 錯誤回應

當 REST 要求造成錯誤時,HTTP 回覆會包含:

  • XML 錯誤文件作為回應內文

  • Content-Type: application/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 可能會使用此 ID 協助疑難排解問題,但這個可能性極低。

  • x-amz-id-2: 協助我們疑難排解問題的特殊字符。

錯誤回應

當 Amazon S3 請求發生錯誤時,用戶端會收到錯誤回應。錯誤回應的確切格式隨 API 而異。例如,REST 錯誤回應與 SOAP 錯誤回應就不相同。但所有錯誤回應都有共同的元素。

注意

HTTP 上的 SOAP 支援已淘汰,但仍可透過 HTTPS 取得 SOAP。SOAP 不支援新的 Amazon S3 功能。建議您不使用 SOAP,而改用 REST API 或 AWS SDK。

錯誤代碼

錯誤代碼是一個字串,專門用於識別錯誤狀況。偵測及依類型處理錯誤的程式必須讀取及了解此代碼。SOAP 與 REST API 有許多共通的錯誤代碼,但有些會隨 API 而異。例如,NoSuchKey 兩者都有,但 UnexpectedContent 只會出現在無效 REST 要求的回應中。在所有案例中,SOAP 錯誤碼都包含錯誤代碼表中指出的字首,因此,SOAP 中傳回的 NoSuchKey 錯誤,實際會顯示為 Client.NoSuchKey。

注意

HTTP 上的 SOAP 支援已淘汰,但仍可透過 HTTPS 取得 SOAP。SOAP 不支援新的 Amazon S3 功能。建議您不使用 SOAP,而改用 REST API 或 AWS SDK。

錯誤訊息

錯誤訊息包含錯誤狀況的一般英文描述,目標對象是人。一般簡單的程式在發生其無法處理的錯誤狀況時,會直接對最終使用者顯示訊息。複雜一些的程式因為錯誤處理更加周密,而且經過適當的國際化,所以很可能會忽略錯誤訊息。

更多詳細資訊

許多錯誤回應包含額外的結構化資料,負責診斷程式設計錯誤的開發人員應詳加閱讀及了解。例如,若您傳送之 REST PUT 要求中所包含的 Content-MD5 標頭,不符合伺服器計算所得的摘要,您就會收到 BadDigest 錯誤。錯誤回應也會包含在詳細資訊元素中計算所得的摘要,以及您告訴我們應有的摘要。您可以在開發時使用此資訊診斷錯誤。在生產環境中,一支運作良好的程式可能將此資訊包含在其錯誤日誌中。