Using the AWS SDK for Java - Amazon Simple Storage Service

このガイドは更新されていません。最新の情報と手順については、新しい Amazon S3 ユーザーガイドを参照してください。

Using the AWS SDK for Java

AWS SDK for Java は、Amazon S3 のバケットおよびオブジェクトのオペレーションのための API を提供しています。オブジェクト操作用として、単一操作で複数のオブジェクトをアップロードするための 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 の構成

AWS SDK for Java の以下のパッケージで API が用意されています。

  • 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 開発者ガイドの「AWS SDK for Java のご利用開始にあたって」を参照してください。