を使用した AWS 開発のベストプラクティス AWS SDK for Java - AWS SDK for Java 1.x

AWS SDK for Java 1.x は 2024 年 7 月 31 日にメンテナンスモードに入り、2025 年 12 月 31 日にend-of-support。新しい機能、可用性の向上、セキュリティ更新を引き続き受け取る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 しようとします。

ストリームが mark と reset をサポートしていない場合、一時的なエラーが発生して再試行が有効になると、SDK は ResetException をスローします。

ベストプラクティス

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

ResetException を回避する最も信頼性の高い方法は、File または FileInputStream を使用してデータを提供することです。File または FileInputStream は、 がマークとリセットの制限に制約されることなく処理 AWS SDK for Java できます。

ストリームが FileInputStream でないものの mark と reset をサポートしている場合は、RequestClientOptionssetReadLimit メソッドを使用して mark の制限を設定できます。デフォルト値は 128 KB です。読み取り制限値をストリームのサイズより 1 バイト大きく設定すると、信頼できる方法で ResetException を回避できます。

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