與 AWS 開發的最佳做法 AWS SDK for Java - AWS SDK for Java 1.

我們宣布了即將推 end-of-support 出的 AWS SDK for Java (v1)。我們建議您移轉至 AWS SDK for Java v2。有關日期,其他詳細信息以及如何遷移的信息,請參閱鏈接的公告。

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

與 AWS 開發的最佳做法 AWS SDK for Java

下列最佳作法可協助您避免在開發 AWS 應用程式時發生問題或發生問題 AWS SDK for Java。我們已經按服務組織了最佳實踐。

S3

避免 ResetExceptions

當您使用串流 (透 Amazon S3 過用AmazonS3戶端或TransferManager) 將物件上傳至時,可能會遇到網路連線或逾時問題。根據預設, AWS SDK for Java 嘗試重試失敗的傳輸,方法是在傳輸開始之前標記輸入串流,然後在重試之前將其重設。

如果串流不支援標記和重設,當發生暫ResetException時性失敗並啟用重試時,SDK 會擲回一個。

最佳做法

建議您使用支援標記和重設作業的串流。

避免 a 的最可靠的方法ResetException是通過使用 File 或提供數據 FileInputStream,該文件 AWS SDK for Java 可以處理而不受標記和復位限制的限制。

如果串流不是FileInputStream但支援標記和重設,您可以使用的setReadLimit方法來設定標記限制RequestClientOptions。其預設值為 128 KB。將讀取限制值設置為大於流大小的一個字節將可靠地避免 ResetException.

例如,如果串流的預期大小上限為 100,000 個位元組,請將讀取限制設定為 100,001 (100,000 + 1) 位元組。標記和重置將始終適用於 100,000 個字節或更少。請注意,這可能會導致某些流緩衝該字節數量到內存中。