Amazon S3 Glacier AWS SDK for Java での の使用 Amazon S3 - Amazon S3 Glacier

このページは、2012 年にリリースされた当初のボールトと REST API を使用する、S3 Glacier サービスの既存のお客様を対象としたものです。

アーカイブストレージソリューションをお探しの場合は、Amazon S3 の S3 Glacier ストレージクラス (S3 Glacier Instant RetrievalS3 Glacier Flexible RetrievalS3 Glacier Deep Archive) を使用することをお勧めします。これらのストレージオプションの詳細については、「Amazon S3 ユーザーガイド」の「S3 Glacier ストレージクラス」および「長期データストレージとしての S3 Glacier ストレージクラスを理解する」を参照してください。これらのストレージクラスは Amazon S3 API を使用し、すべてのリージョンで利用可能で、Amazon S3 コンソール内で管理できます。提供される機能には、ストレージコスト分析、ストレージレンズ、高度なオプションの暗号化機能などがあります。

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

Amazon S3 Glacier AWS SDK for Java での の使用 Amazon S3

AWS SDK for Java は、APIs の両方を提供しますAmazon S3 Glacier での AWS SDKs の使用 Amazon S3 。 Amazon S3 のダウンロードの詳細については AWS SDK for Java、「Amazon SDK for Java」を参照してください。

注記

AWS SDK for Java は、S3 Glacier にアクセスするためのスレッドセーフなクライアントを提供します。最善の方法としては、ご利用のアプリケーションでクライアントを 1 つ作成し、そのクライアントをスレッド間で再利用することです。

低レベル API の使用

低レベルの AmazonGlacierClient クラスには、S3 Glacier の基盤となる REST オペレーションに対応するメソッドがすべて用意されています (Amazon S3 Glacier の API リファレンス)。これらのメソッドを呼び出すときには、対応するリクエストオブジェクトを作成するとともに、そのメソッドがオペレーションに S3 Glacier のレスポンスを返すためのレスポンスオブジェクトを指定する必要があります。

たとえば、AmazonGlacierClient クラスには、ボールト作成のための createVault メソッドがあります。このメソッドは、ボールトの作成 REST オペレーションに対応するものです (「ボールトの作成 (PUT vault)」を参照してください)。このメソッドを使用するには、以下の Java コードスニペットに示すように、S3 Glacier レスポンスを受け取る CreateVaultResult オブジェクトのインスタンスを作成する必要があります。

AmazonGlacierClient client = new AmazonGlacierClient(credentials); client.setEndpoint("https://glacier.us-west-2.amazonaws.com/"); CreateVaultRequest request = new CreateVaultRequest() .withAccountId("-") .withVaultName(vaultName); CreateVaultResult result = client.createVault(createVaultRequest);

このガイドの低レベル API の例では、すべてこのパターンを使用しています。

注記

ここに挙げたコードスニペットでは、リクエストの作成時に AccountID を指定しています。ただし、 を使用する場合 AWS SDK for Java、リクエストAccountIdの はオプションであるため、このガイドのすべての低レベル例ではこの値は設定されません。AccountId は AWS アカウント ID です。この値は、リクエストの署名に使用される認証情報に関連付けられた AWS アカウント ID と一致する必要があります。 AWS アカウント ID またはオプションで「-」を指定できます。この場合、S3 Glacier はリクエストの署名に使用される認証情報に関連付けられた AWS アカウント ID を使用します。お客様のアカウント ID を指定する場合は、ハイフンを含めないでください。を使用する場合 AWS SDK for Java、アカウント ID を指定しない場合、ライブラリはアカウント ID を「-」に設定します。

高レベル API の使用

アプリケーション開発をさらに簡素化するために、 AWS SDK for Java には、低レベル API の一部のメソッドに対して高レベルの抽象化を実装する ArchiveTransferManager クラスが用意されています。このクラスには、uploaddownload など、アーカイブオペレーションのための便利なメソッドがあります。

たとえば、以下の Java コードスニペットでは、アーカイブのアップロードに upload 高レベルメソッドを使用しています。

String vaultName = "examplevault"; String archiveToUpload = "c:/folder/exampleArchive.zip"; ArchiveTransferManager atm = new ArchiveTransferManager(client, credentials); String archiveId = atm.upload(vaultName, "Tax 2012 documents", new File(archiveToUpload)).getArchiveId();

実行するオペレーションは、ArchiveTransferManagerオブジェクトの作成時に指定した AWS リージョンに適用されることに注意してください。 AWS リージョンを指定しない場合、 はデフォルトの AWS リージョンus-east-1として AWS SDK for Java を設定します。

このガイドの高レベル API の例では、すべてこのパターンを使用しています。

注記

高レベルの ArchiveTransferManager クラスは、AmazonGlacierClient インスタンスまたは AWSCredentials インスタンスを使用して構築できます。

Eclipse を使用した Amazon S3 Glacier の Java 実行例

Java コード例の使用を最も手早く開始する方法は、最新の AWS Toolkit for Eclipseをインストールすることです。最新ツールキットのインストールと更新については、http:///eclipse を参照してください。以下のタスクは、このセクションに示した Java コード例を作成およびテストする手順を示しています。

Java コード例作成の一般的な手順

1

Amazon SDK for Java の「認証情報の提供 AWS SDK for Java 」トピックの説明に従って、 AWS 認証情報のデフォルトの認証情報プロファイルを作成します。 AWS

2

Eclipse AWS で新しい Java プロジェクトを作成します。プロジェクトは AWS SDK for Java用にあらかじめ設定されています。

3

任意のセクションからプロジェクトにコードをコピーします。

4

必要なデータを指定してコードを修正します。たとえばファイルをアップロードする場合は、ファイルのパスとバケットの名前を指定します。

5

コードを実行します。 AWS Management Consoleを使用して、オブジェクトが作成されることを確認します。の詳細については AWS Management Console、「https://http://aws.amazon.com/console/.com」を参照してください。

エンドポイントの設定

デフォルトでは、 はエンドポイント AWS SDK for Java を使用しますhttps://glacier.us-east-1.amazonaws.com。以下の Java コードスニペットに示すように、エンドポイントは明示的に設定できます。

以下のスニペットには、低レベル API で 米国西部(オレゴン リージョン (us-west-2) にエンドポイントを設定する方法を示しています。

client = new AmazonGlacierClient(credentials); client.setEndpoint("glacier.us-west-2.amazonaws.com");

以下のスニペットには、高レベル API で 米国西部(オレゴン) リージョンにエンドポイントを設定する方法を示しています。

glacierClient = new AmazonGlacierClient(credentials); sqsClient = new AmazonSQSClient(credentials); snsClient = new AmazonSNSClient(credentials); glacierClient.setEndpoint("glacier.us-west-2.amazonaws.com"); sqsClient.setEndpoint("sqs.us-west-2.amazonaws.com"); snsClient.setEndpoint("sns.us-west-2.amazonaws.com"); ArchiveTransferManager atm = new ArchiveTransferManager(glacierClient, sqsClient, snsClient);

サポートされている AWS リージョンとエンドポイントのリストについては、「」を参照してくださいAmazon S3 Glacier へのアクセス