を使用した 1 回のオペレーションでのアーカイブのアップロード AWS SDK for Java - Amazon Glacier

このページは、Vaults と 2012 年の元の REST API を使用する Amazon Glacier サービスの既存のお客様専用です。

アーカイブストレージソリューションをお探しの場合は、Amazon Glacier Amazon S3、S3 Glacier Flexible Retrieval、S3 S3 Glacier Deep Archive の Amazon Glacier ストレージクラスを使用することをお勧めします。これらのストレージオプションの詳細については、Amazon Glacier ストレージクラス」を参照してください。

Amazon Glacier (元のスタンドアロンボールトベースのサービス) は、2025 年 12 月 15 日以降、既存の顧客に影響を与えずに新規顧客を受け入れなくなります。Amazon Glacier は、ボールトにデータを保存する独自の APIs を備えたスタンドアロンサービスであり、Amazon S3 および Amazon S3 Glacier ストレージクラスとは異なります。既存のデータは Amazon Glacier で無期限に安全でアクセス可能です。移行は必要ありません。低コストの長期アーカイブストレージの場合、 は Amazon S3 Glacier ストレージクラス AWS を推奨します。これにより、S3 バケットベースの APIs、フル AWS リージョン 可用性、低コスト、 AWS サービス統合で優れたカスタマーエクスペリエンスを実現できます。拡張機能が必要な場合は、Amazon Glacier ボールトから Amazon S3 Glacier ストレージクラスにデータを転送するためのソリューションガイダンスを使用して、Amazon S3 Glacier ストレージクラスへの移行を検討してください。 AWS Amazon Glacier Amazon S3

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

を使用した 1 回のオペレーションでのアーカイブのアップロード AWS SDK for Java

両方高レベル API と低レベル APIAmazon SDK for Java で提供されており、アーカイブをアップロードする方法を提供します。

の高レベル API を使用したアーカイブのアップロード AWS SDK for Java

高レベル API の ArchiveTransferManager クラスには、ボールトへのアーカイブのアップロードに使用できる upload メソッドが用意されています。

注記

upload メソッドを使用して、小さなアーカイブや大きなアーカイブをアップロードできます。このメソッドでは、アップロードするアーカイブのサイズに応じて、1 回のオペレーションでアップロードするか、マルチパートアップロード API を使用してアーカイブをパート単位でアップロードするかを決定します。

例: の高レベル API を使用したアーカイブのアップロード AWS SDK for Java

次の Java コード例では、米国西部(オレゴン リージョン (us-west-2)のボールト (examplevault) にアーカイブをアップロードします。サポートされている AWS リージョンとエンドポイントのリストについては、「」を参照してくださいAmazon Glacier へのアクセス

この例を実行するための詳しい手順については、「Eclipse を使用した Amazon Glacier の Java の実行例」を参照してください。ここに示したコードは、アップロードするボールトの名前とファイルの名前で更新する必要があります。

import java.io.File; import java.io.IOException; import java.util.Date; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.glacier.AmazonGlacierClient; import com.amazonaws.services.glacier.transfer.ArchiveTransferManager; import com.amazonaws.services.glacier.transfer.UploadResult; public class ArchiveUploadHighLevel { public static String vaultName = "*** provide vault name ***"; public static String archiveToUpload = "*** provide name of file to upload ***"; public static AmazonGlacierClient client; public static void main(String[] args) throws IOException { ProfileCredentialsProvider credentials = new ProfileCredentialsProvider(); client = new AmazonGlacierClient(credentials); client.setEndpoint("https://glacier.us-west-2.amazonaws.com/"); try { ArchiveTransferManager atm = new ArchiveTransferManager(client, credentials); UploadResult result = atm.upload(vaultName, "my archive " + (new Date()), new File(archiveToUpload)); System.out.println("Archive ID: " + result.getArchiveId()); } catch (Exception e) { System.err.println(e); } } }

の低レベル API を使用した 1 回のオペレーションでのアーカイブのアップロード AWS SDK for Java

低レベル API には、アーカイブに関するあらゆるオペレーションのメソッドが用意されています。以下では、 AWS SDK for Javaを使用してアーカイブをアップロードするステップを説明します。

  1. AmazonGlacierClient クラスのインスタンス(クライアント)を作成します。

    アーカイブをアップロードする AWS リージョンを指定する必要があります。このクライアントを使用して実行するすべてのオペレーションは、その AWS リージョンに適用されます。

  2. UploadArchiveRequest クラスのインスタンスを作成することにより、リクエスト情報を指定します。

    アップロードするデータのほかにも、ペイロードのチェックサム (SHA-256 木構造ハッシュ)、ボールト名、データのコンテンツの長さ、およびアカウント ID を指定する必要があります。

    アカウント ID を指定しなかった場合には、リクエストに署名する際に使用した認証情報に関連付けられているアカウント ID が使用されます。詳細については、「Amazon Glacier AWS SDK for Java での の使用」を参照してください。

  3. リクエストオブジェクトをパラメータとして指定して、uploadArchive メソッドを実行します。

    応答として、Amazon Glacier (Amazon Glacier) は新しくアップロードされたアーカイブのアーカイブ ID を返します。

以下の Java コードスニペットは、前述の手順を示しています。

AmazonGlacierClient client; UploadArchiveRequest request = new UploadArchiveRequest() .withVaultName("*** provide vault name ***") .withChecksum(checksum) .withBody(new ByteArrayInputStream(body)) .withContentLength((long)body.length); UploadArchiveResult uploadArchiveResult = client.uploadArchive(request); System.out.println("Location (includes ArchiveID): " + uploadArchiveResult.getLocation());

例: の低レベル API を使用して 1 回のオペレーションでアーカイブをアップロードする AWS SDK for Java

次の Java コード例では、 AWS SDK for Java を使用してアーカイブをボールト () にアップロードしますexamplevault。この例を実行するための詳しい手順については、「Eclipse を使用した Amazon Glacier の Java の実行例」を参照してください。ここに示したコードは、アップロードするボールトの名前とファイルの名前で更新する必要があります。

import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.glacier.AmazonGlacierClient; import com.amazonaws.services.glacier.TreeHashGenerator; import com.amazonaws.services.glacier.model.UploadArchiveRequest; import com.amazonaws.services.glacier.model.UploadArchiveResult; public class ArchiveUploadLowLevel { public static String vaultName = "*** provide vault name ****"; public static String archiveFilePath = "*** provide to file upload ****"; public static AmazonGlacierClient client; public static void main(String[] args) throws IOException { ProfileCredentialsProvider credentials = new ProfileCredentialsProvider(); client = new AmazonGlacierClient(credentials); client.setEndpoint("https://glacier.us-east-1.amazonaws.com/"); try { // First open file and read. File file = new File(archiveFilePath); InputStream is = new FileInputStream(file); byte[] body = new byte[(int) file.length()]; is.read(body); // Send request. UploadArchiveRequest request = new UploadArchiveRequest() .withVaultName(vaultName) .withChecksum(TreeHashGenerator.calculateTreeHash(new File(archiveFilePath))) .withBody(new ByteArrayInputStream(body)) .withContentLength((long)body.length); UploadArchiveResult uploadArchiveResult = client.uploadArchive(request); System.out.println("ArchiveID: " + uploadArchiveResult.getArchiveId()); } catch (Exception e) { System.err.println("Archive not uploaded."); System.err.println(e); } } }