Amazon S3有大量的reasons爲什麼它會返回HTTP 400錯誤請求錯誤。最相關的事實是,這些錯誤中有一些來自互聯網的不可靠性,例如請求超時。可能返回的另一個原因是如果存儲桶或密鑰名稱無效。如何區分Amazon S3的不同BadRequest錯誤?
我正嘗試上傳文件到S3,其中包含由客戶控制的密鑰名稱提供的密鑰名稱。我需要能夠區分暫時的400錯誤,如超時和錯誤的密鑰/桶名錯誤,這些錯誤不會是暫時的。瞬間錯誤將表明我們應該重試上傳,而非瞬時錯誤意味着我們應該停止嘗試上傳該文件。
但是,我不知道如何區分這兩個錯誤!如果它很重要,我試圖使用JetS3t API來執行這些上傳。如何區分錯誤的密鑰/桶名稱錯誤和其他含有400錯誤代碼的錯誤?
啊,我得看看各種第三方API是否允許我獲取這些信息。一個用於各種測試的python似乎沒有給我提供這些信息。一旦我知道這將與Jets3t API協同工作,我會立即投入/接受。 – BlackVegetable
我找到了一種使用jets3t來做到這一點的方法。但是,我無法訪問該庫中的XML響應。如果您可以找到一種方法來訪問該庫中原始XML響應中的錯誤密鑰名稱(嘗試「.. \\」),我會接受/ upvote這個答案。 – BlackVegetable
雖然也許不完全符合定義,但我認爲這是一種[錯誤隱藏](https://en.m.wikipedia.org/wiki/Error_hiding),一種明確的反模式。它讓我感到困惑,爲什麼這麼多的圖書館似乎不打算提供如此批判性的有用信息,這是我早期編寫我從頭開始使用的許多AWS庫的動機之一,僅使用API文檔。確實需要更長時間才能完成任務,但收益是我很少對錯誤感到驚訝。 –