このページは、2012 年にリリースされた当初のボールトと REST API を使用する、S3 Glacier サービスの既存のお客様を対象としたものです。
アーカイブストレージソリューションをお探しの場合は、Amazon S3 の S3 Glacier ストレージクラス (S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive) を使用することをお勧めします。これらのストレージオプションの詳細については、「Amazon S3 ユーザーガイド」の「S3 Glacier ストレージクラス
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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
クラスが用意されています。このクラスには、upload
、download
など、アーカイブオペレーションのための便利なメソッドがあります。
たとえば、以下の 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
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/ |
エンドポイントの設定
デフォルトでは、 はエンドポイント 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 へのアクセス。