

 AWS SDK for Java 1.x は 2025 年 12 月 31 日にend-of-supportしました。新しい機能、可用性の向上、セキュリティ更新のために、[AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html) に移行することをお勧めします。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# を使用した AWS 開発のベストプラクティス AWS SDK for Java
<a name="best-practices"></a>

以下のベストプラクティスは、 を使用して AWS アプリケーションを開発する際の問題や問題を回避するのに役立ちます AWS SDK for Java。ベストプラクティスはサービスごとに整理してあります。

## S3
<a name="s3"></a>

### ResetExceptions の回避
<a name="s3-avoid-resetexception"></a>

ストリーム Amazon S3 を使用して ( `AmazonS3`クライアントまたは を介して`TransferManager`) オブジェクトを にアップロードすると、ネットワーク接続またはタイムアウトの問題が発生する可能性があります。デフォルトでは、 は転送の開始前に入力ストリームをマークし、再試行する前にリセットすることで、 AWS SDK for Java 失敗した転送を再試行しようとします。

ストリームが mark と reset をサポートしていない場合、一時的なエラーが発生して再試行が有効になると、SDK は [ResetException](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/ResetException.html) をスローします。

 **ベストプラクティス** 

mark オペレーションと reset オペレーションをサポートするストリームを使用することをお勧めします。

[ResetException](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/ResetException.html) を回避する最も信頼性の高い方法は、[File](https://docs.oracle.com/javase/8/docs/api/index.html?java/io/File.html) または [FileInputStream](https://docs.oracle.com/javase/8/docs/api/index.html?java/io/FileInputStream.html) を使用してデータを提供することです。これは、 がマークとリセットの制限に制約されることなく処理 AWS SDK for Java できます。

ストリームが [FileInputStream](https://docs.oracle.com/javase/8/docs/api/index.html?java/io/FileInputStream.html) でないものの mark と reset をサポートしている場合は、[RequestClientOptions](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/RequestClientOptions.html) の `setReadLimit` メソッドを使用して mark の制限を設定できます。デフォルト値は 128 KB です。読み取り制限値を*ストリームのサイズより 1 バイト大きく*設定すると、信頼できる方法で [ResetException](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/ResetException.html) を回避できます。

たとえば、ストリームの最大予想サイズが 100,000 バイトである場合、読み取り制限を 100,001 (100,000 \$1 1) バイトに設定します。mark と reset は常に 100,000 バイト以下で動作します。これにより、一部のストリームではそのバイト数がメモリにバッファされる場合があることに注意してください。