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

( AWS SDK for Java v1) end-of-support の今後の を発表しました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 再試行する前にリセットすることで、失敗した転送を再試行しようとします。

ストリームがマークとリセットをサポートしていない場合、SDK は一時的な障害が発生し、再試行が有効になっていResetExceptionると をスローします。

ベストプラクティス

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

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

ストリームFileInputStreamが ではなく、マークとリセットをサポートしている場合は、 の setReadLimitメソッドを使用してマーク制限を設定できますRequestClientOptions。デフォルト値は 128 KB です。読み取り制限値をストリームのサイズよりも 1 バイト大きく設定すると、 は確実に回避されますResetException

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