所以我的iPhone應用程序成功地將照片上傳到Amazon S3。我使用與S3Uploader示例項目相同的代碼,以及適用於iOS的最新(1.6.0版)Amazon AWS SDK。問題是間歇性地出現SignatureDoesNotMatch錯誤(我們計算的請求籤名與您提供的簽名不匹配,請檢查您的密鑰和簽名方法)。它沒有模式。目前我的應用程序通過在委託調用didFailWithError上執行一定數量的重試來解決此錯誤。Amazon S3 iOS SDK照片上傳錯誤有時候 - SignatureDoesNotMatch
到目前爲止,我的測試有足夠的重試次數,所以用戶不會注意到這個錯誤,但是當我的簽名顯然是正確的時候知道我得到了一個簽名密鑰錯誤是相當令人沮喪的,因爲它有時會起作用。我不確定它是否是URL編碼錯誤(我的簽名密鑰有+號),但是由於我使用的是iOS SDK,我沒有看到如何處理PUT網址。
此外,我驗證了我的存儲桶名稱都是小寫字母,我的文件名只是數字和一些字母。我也嘗試了不同的地區,他們都有相同的結果。簡而言之,它可以從0次重試到5次重試,從而在沒有SignatureDoesNotMatch錯誤的情況下獲得成功的PUT。有沒有人有類似的問題?任何幫助將不勝感激。謝謝閱讀。
我是AWS SDK for iOS的維護人員之一。您表示您使用的是與S3Uploader相同的代碼。這是否意味着您正在使用嵌入憑證?請注意,我們不建議您這樣做,因爲您的應用可能會被泄露並且提取證書。 這就是說,這個錯誤只發生在最終用戶的設備上,還是你能夠在你自己的設備或模擬器上重現它? –
嗨,鮑勃。謝謝回覆!另外,感謝您獲取嵌入憑證的信息。 IAM會是更安全的路線嗎?如果是這樣,你能指示我使用iOS SDK的IAM的一些例子嗎?關於我最初的問題,該應用程序仍在開發中,所以我只能自己測試並生成它(在模擬器中 - 尚未在設備上嘗試過)。所以到目前爲止,唯一的PUT請求來自我自己。謝謝你的時間。 – rymagno
使用IAM憑證肯定會比使用根憑證更好,但不會消除可能受到危害的應用程序問題。我們建議使用TVM或Web聯合身份驗證。版本1.6。適用於iOS的AWS SDK的0包含這兩種憑證管理方法的樣本。您還可以閱讀以下文章以獲取更多信息[網絡聯合身份驗證](http://aws.amazon.com/articles/4617974389850313),[令牌自動販賣機](http://aws.amazon.com/articles/4611615499399490 )。 –