我一直在使用AWS android sdk(s)來處理我的android應用程序中S3上的文件。用戶遇到了一些問題,其中很少涉及連接超時。雖然在我的應用程序中設置的AmazonS3
客戶端,我已經設置了超時,並使用下面的代碼的重試次數:AWS Android SDK連接超時和重試
ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setMaxErrorRetry(4);
clientConfiguration.setConnectionTimeout(10000); // default is 10 secs
clientConfiguration.setSocketTimeout(15000); // default is 50 secs
我到處看,它說,maxErrorRetry
只做重試failed retryable requests
。與連接超時和套接字連接超時相關的錯誤是否也屬於此類別?如果不是,這種情況的解決方案是什麼?我一直在尋找這個相當長的一段時間,但沒有得到任何明確的答案。
另外,我一直面臨兩個特殊的例外,我在TransferListener
回調中遇到了這個例外。主要有:
- 無法對象的內容存儲到磁盤:讀取超時(所有誰面對任何AWS例外面對此異常的用戶的14%)
- 無法存儲對象的內容到硬盤:超時(17.4所有面臨任何AWS例外的用戶的百分比都面臨此例外)
上述兩個對我們來說是最痛苦的。我一直認爲這是因爲用戶設備上沒有更多的存儲空間。我一直在使用外部存儲器中的特定於應用程序的目錄來存儲這些文件,現在正在考慮將這些文件移動到緩存中,以便系統在設備上沒有剩餘空間的情況下處理清除文件。您認爲這是一個很好的解決方案,假設用戶設備上的空間不足。 有什麼其他的可能性,因爲上述存儲相關的異常可能發生?
謝謝你的回覆。 S3存儲桶對象具有所需的權限。該應用程序正在投入生產,並且這些都是發生在小部分用戶中的例外情況。其他方面,我一定會考慮。 – Swapnil
如果問題仍然存在,您可以使用堆棧跟蹤創建論壇帖子/ GitHub問題以及有關重現問題的更多詳細信息? – Karthikeyan