AWS SDK for Java の使用
AWS SDK for Java は、Amazon S3 のバケットおよびオブジェクトのオペレーションのための API を提供しています。オブジェクト操作用として、単一操作で複数のオブジェクトをアップロードするための API に加え、大きなオブジェクトをパートごとにアップロードするための API も用意されています。詳細については、「マルチパートアップロードを使用したオブジェクトのアップロードとコピー」を参照してください。
AWS SDK for Java では、高レベル API を使うか低レベル API を使うかを選択できます。
低レベル API
下位 API は、バケットやオブジェクトに適用される、作成、更新、削除などの、基盤となる Amazon S3 REST オペレーションに対応します。低レベルのマルチパートアップロード API を使用して大きいオブジェクトをアップロードすると、細かく制御できるようになります。たとえば、マルチパートアップロードを一時停止して再開したり、アップロード中にパートサイズを変更したり、データのサイズが事前にわからない場合にアップロードを開始したりすることができるようになります。このような制御の必要がない場合は、高レベル API を使ってオブジェクトをアップロードしてください。
高レベル API
SDK では、オブジェクトのアップロード用に、TransferManager
クラスによる高レベルの抽象化を提供しています。高レベル API はより単純な API で、ほんの数行のコードを使って、ファイルやストリームを Amazon S3 にアップロードすることができます。データをアップロードする際、前述の低レベル API のセクションで説明したような各種の制御が必要ない場合は、高レベル API を使用してください。
小さなサイズのデータの場合は、TransferManager
API により、単一の操作でデータをアップロードできます。ただしデータのサイズが特定のしきい値を超えると、TransferManager
はマルチパートアップロード API の使用に切り替わります。可能であれば、TransferManager
は複数のスレッドを使って複数のパートを同時にアップロードします。あるパートのアップロードに失敗すると、API は、失敗したパートのアップロードを 3 回まで再試行します。ただしこのオプションは、TransferManagerConfiguration
クラスを使って設定変更できます。
注記
データのソースにストリームを使っている場合、TransferManager
クラスは同時アップロードを実行しません。
Java API の構成
この API は、AWS SDK for Java 内の以下のパッケージに同梱されています。
-
com.amazonaws.services.s3— Amazon S3 クライアントを作成し、バケットおよびオブジェクトを操作するための API を用意しています。たとえば、バケットの作成、オブジェクトのアップロード、オブジェクトの取得、オブジェクトの削除、キーのリストなどを行うことができます。
-
com.amazonaws.services.s3.transfer— 上位 API データオペレーションを提供します。
この上位 API は、Amazon S3 との間のオブジェクトの転送をさらに簡素化するためのものです。これには、転送を実行、クエリ、操作するための非同期メソッドを提供する
TransferManager
クラスが含まれています。さらに、TransferManagerConfiguration
クラスも含まれています。このクラスでは、アップロードするパートの最小パートサイズと、マルチパートアップロードを使用する場合のバイト単位のしきい値を設定できます。 -
com.amazonaws.services.s3.model— リクエストの作成やレスポンスの処理を行うための下位 API クラスを提供します。たとえば、オブジェクト取得リクエストを記述するための
GetObjectRequest
クラス、キーのリストリクエストを記述するためのListObjectsRequest
クラス、およびマルチパートアップロードを作成するためのInitiateMultipartUploadRequest
クラスが含まれます。
AWS SDK for Java API の詳細については、AWS SDK for Java API リファレンスを参照してください。
Amazon S3 Java コード例のテスト
このガイドの Java の例は、AWS SDK for Java バージョン 1.11.321 と互換性があります。コードサンプルのセットアップと実行の手順については、AWS SDK for Java デベロッパーガイドの開始方法を参照してください。