使用 AWS 開發的最佳實務 AWS SDK for Java - AWS SDK for Java 1.x

截至 2024 年 7 月 31 日, AWS SDK for Java 1.x 已進入維護模式,並將end-of-support在 2025 年 12 月 31 日送達。我們建議您遷移至 AWS SDK for Java 2.x,以繼續接收新功能、可用性改進和安全性更新。

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

使用 AWS 開發的最佳實務 AWS SDK for Java

下列最佳實務可協助您在使用 開發 AWS 應用程式時避免問題或麻煩 AWS SDK for Java。我們已依服務組織最佳實務。

S3

避免 ResetExceptions

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

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

最佳實務

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

避免 的最可靠方法是使用 檔案或 ResetException提供資料FileInputStream,該檔案或 AWS SDK for Java 可以處理,而不會受限於標記和重設限制。

如果串流不是 ,FileInputStream但確實支援標記和重設,您可以使用 setReadLimit方法設定標記限制RequestClientOptions。其預設值為 128 KB。將讀取限制值設定為大於串流大小的 1 位元組,可以可靠地避免 ResetException

例如,如果串流的最大預期大小為 100,000 個位元組,請將讀取限制設定為 100,001 (100,000 + 1) 個位元組。標記和重設一律適用於 100,000 個或更少位元組。請注意,這可能會導致某些串流緩衝記憶體中的位元組數。