

 **このページは、ボールトと 2012 年リリース当時の REST API を使用する、Amazon Glacier サービスの既存のお客様のみを対象としています。**

アーカイブストレージソリューションをお探しの場合は、Amazon S3 の Amazon Glacier ストレージクラス (S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval、S3 Glacier Deep Archive) を使用することをお勧めします。これらのストレージオプションの詳細については、「[Amazon Glacier ストレージクラス](https://aws.amazon.com/s3/storage-classes/glacier/)」を参照してください。

Amazon Glacier (元のスタンドアロンボールトベースのサービス) は、新規顧客を受け入れなくなりました。Amazon Glacier は、ボールトにデータを保存する独自の API を備えたスタンドアロンサービスであり、Amazon S3 および Amazon S3 Glacier ストレージクラスとは異なります。既存のデータは Amazon Glacier で無期限に安全性が確保され、引き続きアクセス可能です。移行は必要ありません。低コストの長期アーカイブストレージの場合、 は [Amazon S3 Glacier ストレージクラス](https://aws.amazon.com/s3/storage-classes/glacier/) AWS を推奨します。これにより、S3 バケットベースの APIs、低コスト、 AWS サービス統合で優れたカスタマーエクスペリエンスを実現できます。 AWS リージョン 拡張機能が必要な場合は、[Amazon Glacier ボールトから Amazon S3 Glacier ストレージクラスにデータを転送するためのAWS ソリューションガイダンス](https://aws.amazon.com/solutions/guidance/data-transfer-from-amazon-s3-glacier-vaults-to-amazon-s3/)を使用して、Amazon S3 Glacier ストレージクラスへの移行を検討してください。

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

# 1 回のオペレーションでアーカイブをアップロードする
<a name="uploading-archive-single-operation"></a>

「[Amazon Glacier へのアーカイブのアップロード](uploading-an-archive.md)」で説明しているように、1 回のオペレーションで小さいサイズのアーカイブをアップロードできます。ただし、Amazon Glacier (Amazon Glacier) のユーザーには 100 MB を超えるサイズのアーカイブをアップロードする際には、マルチパートアップロードを使用することをお勧めします。

**Topics**
+ [を使用した 1 回のオペレーションでのアーカイブのアップロード AWS Command Line Interface](uploading-an-archive-single-op-using-cli.md)
+ [を使用した 1 回のオペレーションでのアーカイブのアップロード AWS SDK for Java](uploading-an-archive-single-op-using-java.md)
+ [Amazon Glacier の を使用して 1 回のオペレーション AWS SDK for .NET でアーカイブをアップロードする](uploading-an-archive-single-op-using-dotnet.md)
+ [REST API を使用して 1 回のオペレーションでアーカイブをアップロードする](uploading-an-archive-single-op-using-rest.md)

# を使用した 1 回のオペレーションでのアーカイブのアップロード AWS Command Line Interface
<a name="uploading-an-archive-single-op-using-cli"></a>

 AWS Command Line Interface () を使用して Amazon Glacier (Amazon Glacier) にアーカイブをアップロードできますAWS CLI。

**Topics**
+ [(前提条件) のセットアップ AWS CLI](#Creating-Vaults-CLI-Setup)
+ [例: を使用してアーカイブをアップロードする AWS CLI](#Uploading-Archives-CLI-Implementation)

## (前提条件) のセットアップ AWS CLI
<a name="Creating-Vaults-CLI-Setup"></a>

1.  AWS CLIをダウンロードして設定します。手順については、*「AWS Command Line Interface ユーザーガイド」*の次のトピックを参照してください。

    [のインストール AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) 

   [の設定 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)

1. コマンドプロンプトで次のコマンドを入力して、 AWS CLI セットアップを確認します。これらのコマンドは、いずれも認証情報を明示的に提供しないため、デフォルトプロファイルの認証情報が使用されます。
   + help コマンドを使用してください。

     ```
     aws help
     ```
   + 設定したアカウントの Amazon Glacier ボールトのリストを取得するには、`list-vaults` コマンドを使用します。*123456789012* を AWS アカウント ID に置き換えます。

     ```
     aws glacier list-vaults --account-id 123456789012
     ```
   + の現在の設定データを表示するには AWS CLI、 `aws configure list` コマンドを使用します。

     ```
     aws configure list
     ```

## 例: を使用してアーカイブをアップロードする AWS CLI
<a name="Uploading-Archives-CLI-Implementation"></a>

アーカイブをアップロードするには、ボールトを作成している必要があります。ボールトの作成方法の詳細については、「[Amazon Glacier でボールトを作成する](creating-vaults.md)」を参照してください。

1. `upload-archive` コマンドを使用して、既存のボールトにアーカイブを追加します。以下の例では、`vault name` を `account ID` と置き換えます。`body` パラメータには、アップロードするファイルへのパスを指定します。

   ```
   aws glacier upload-archive --vault-name awsexamplevault --account-id 123456789012 --body archive.zip
   ```

1.  正常な出力:

   ```
   {
       "archiveId": "kKB7ymWJVpPSwhGP6ycSOAekp9ZYe_--zM_mw6k76ZFGEIWQX-ybtRDvc2VkPSDtfKmQrj0IRQLSGsNuDp-AJVlu2ccmDSyDUmZwKbwbpAdGATGDiB3hHO0bjbGehXTcApVud_wyDw",
       "checksum": "969fb39823836d81f0cc028195fcdbcbbe76cdde932d4646fa7de5f21e18aa67",
       "location": "/123456789012/vaults/awsexamplevault/archives/kKB7ymWJVpPSwhGP6ycSOAekp9ZYe_--zM_mw6k76ZFGEIWQX-ybtRDvc2VkPSDtfKmQrj0IRQLSGsNuDp-AJVlu2ccmDSyDUmZwKbwbpAdGATGDiB3hHO0bjbGehXTcApVud_wyDw"
   }
   ```

   終了すると、コマンドはアーカイブ ID、チェックサム、Amazon Glacier 内の場所を出力します。upload-archive コマンドの詳細については、「AWS CLI コマンドリファレンス」の「[upload-archive](https://docs.aws.amazon.com/cli/latest/reference/glacier/upload-archive.html)」を参照してください。**

# を使用した 1 回のオペレーションでのアーカイブのアップロード AWS SDK for Java
<a name="uploading-an-archive-single-op-using-java"></a>

両方[高レベル API と低レベル API](using-aws-sdk.md)Amazon SDK for Java で提供されており、アーカイブをアップロードする方法を提供します。

**Topics**
+ [の高レベル API を使用したアーカイブのアップロード AWS SDK for Java](#uploading-an-archive-single-op-high-level-using-java)
+ [の低レベル API を使用した 1 回のオペレーションでのアーカイブのアップロード AWS SDK for Java](#uploading-an-archive-single-op-low-level-using-java)

## の高レベル API を使用したアーカイブのアップロード AWS SDK for Java
<a name="uploading-an-archive-single-op-high-level-using-java"></a>

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

 

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

### 例: の高レベル API を使用したアーカイブのアップロード AWS SDK for Java
<a name="upload-archive-high-level-java-example"></a>

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

この例を実行するための詳しい手順については、「[Eclipse を使用した Amazon Glacier の Java 実行例](using-aws-sdk-for-java.md#setting-up-and-testing-sdk-java)」を参照してください。ここに示したコードは、アップロードするボールトの名前とファイルの名前で更新する必要があります。

**Example**  

```
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
<a name="uploading-an-archive-single-op-low-level-using-java"></a>

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

 

1. `AmazonGlacierClient` クラスのインスタンス（クライアント）を作成します。

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

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

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

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

1. リクエストオブジェクトをパラメータとして指定して、`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
<a name="uploding-single-archive-using-java-example"></a>

次の Java コード例では、 AWS SDK for Java を使用してアーカイブをボールト () にアップロードします`examplevault`。この例を実行するための詳しい手順については、「[Eclipse を使用した Amazon Glacier の Java 実行例](using-aws-sdk-for-java.md#setting-up-and-testing-sdk-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);
        }
    }
}
```

# Amazon Glacier の を使用して 1 回のオペレーション AWS SDK for .NET でアーカイブをアップロードする
<a name="uploading-an-archive-single-op-using-dotnet"></a>

両方[高レベル API と低レベル API](using-aws-sdk.md).NET 用の Amazon SDK で提供されているには、1 回のオペレーションでアーカイブをアップロードすることができます。

**Topics**
+ [の高レベル API を使用したアーカイブのアップロード AWS SDK for .NET](#uploading-an-archive-single-op-highlevel-using-dotnet)
+ [の低レベル API を使用した 1 回のオペレーションでのアーカイブのアップロード AWS SDK for .NET](#uploading-an-archive-single-op-lowlevel-using-dotnet)

## の高レベル API を使用したアーカイブのアップロード AWS SDK for .NET
<a name="uploading-an-archive-single-op-highlevel-using-dotnet"></a>

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

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

### 例: の高レベル API を使用したアーカイブのアップロード AWS SDK for .NET
<a name="upload-archive-highlevel-any-size-dotnet"></a>

次の C\$1 コード例では、米国西部（オレゴン リージョン のボールト (`examplevault`) にアーカイブをアップロードします。

この例を実行するための詳しい手順については、「[コード例の実行](using-aws-sdk-for-dot-net.md#setting-up-and-testing-sdk-dotnet)」を参照してください。ここに示したコードは、アップロードするファイルの名前で更新する必要があります。

**Example**  

```
using System;
using Amazon.Glacier;
using Amazon.Glacier.Transfer;
using Amazon.Runtime;

namespace glacier.amazon.com.rproxy.govskope.us.docsamples
{
  class ArchiveUploadHighLevel
  {
    static string vaultName = "examplevault"; 
    static string archiveToUpload = "*** Provide file name (with full path) to upload ***";

    public static void Main(string[] args)
    {
       try
      {
         var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2);
         // Upload an archive.
         string archiveId = manager.Upload(vaultName, "upload archive test", archiveToUpload).ArchiveId;
         Console.WriteLine("Archive ID: (Copy and save this ID for use in other examples.) : {0}", archiveId);
         Console.WriteLine("To continue, press Enter"); 
         Console.ReadKey();
      }
      catch (AmazonGlacierException e) { Console.WriteLine(e.Message); }
      catch (AmazonServiceException e) { Console.WriteLine(e.Message); }
      catch (Exception e) { Console.WriteLine(e.Message); }
      Console.WriteLine("To continue, press Enter");
      Console.ReadKey();
    }
  }
}
```

## の低レベル API を使用した 1 回のオペレーションでのアーカイブのアップロード AWS SDK for .NET
<a name="uploading-an-archive-single-op-lowlevel-using-dotnet"></a>

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

 

1. `AmazonGlacierClient` クラスのインスタンス（クライアント）を作成します。

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

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

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

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

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

   レスポンスでは、Amazon Glacier によって新しくアップロードされたアーカイブのアーカイブ ID が返されます。

### 例: の低レベル API を使用して 1 回のオペレーションでアーカイブをアップロードする AWS SDK for .NET
<a name="upload-archive-single-op-lowlevel-dotnet"></a>

以下の C\$1 コードの例は、前述の手順を示しています。この例では、 AWS SDK for .NET を使用してアーカイブをボールト () にアップロードします`examplevault`。

**注記**  
1 回のリクエストでアーカイブをアップロードする際に基盤となる REST API については、「[アーカイブのアップロード (POST archive)](api-archive-post.md)」を参照してください。

この例を実行するための詳しい手順については、「[コード例の実行](using-aws-sdk-for-dot-net.md#setting-up-and-testing-sdk-dotnet)」を参照してください。ここに示したコードは、アップロードするファイルの名前で更新する必要があります。

**Example**  

```
using System;
using System.IO;
using Amazon.Glacier;
using Amazon.Glacier.Model;
using Amazon.Runtime;

namespace glacier.amazon.com.rproxy.govskope.us.docsamples
{
  class ArchiveUploadSingleOpLowLevel
  {
    static string vaultName       = "examplevault";
    static string archiveToUpload = "*** Provide file name (with full path) to upload ***";

    public static void Main(string[] args)
    {
      AmazonGlacierClient client;
      try
      {
         using (client = new AmazonGlacierClient(Amazon.RegionEndpoint.USWest2))
        {
          Console.WriteLine("Uploading an archive.");
          string archiveId = UploadAnArchive(client);
          Console.WriteLine("Archive ID: {0}", archiveId);
        }
      }
      catch (AmazonGlacierException e) { Console.WriteLine(e.Message); }
      catch (AmazonServiceException e) { Console.WriteLine(e.Message); }
      catch (Exception e) { Console.WriteLine(e.Message); }
      Console.WriteLine("To continue, press Enter");
      Console.ReadKey();
    }

    static string UploadAnArchive(AmazonGlacierClient client)
    {
      using (FileStream fileStream = new FileStream(archiveToUpload, FileMode.Open, FileAccess.Read))
      {
        string treeHash = TreeHashGenerator.CalculateTreeHash(fileStream);
        UploadArchiveRequest request = new UploadArchiveRequest()
        {
          VaultName = vaultName,
          Body = fileStream,
          Checksum = treeHash
        };
        UploadArchiveResponse response = client.UploadArchive(request);
        string archiveID = response.ArchiveId;
        return archiveID;
      }
    }
  }
}
```

# REST API を使用して 1 回のオペレーションでアーカイブをアップロードする
<a name="uploading-an-archive-single-op-using-rest"></a>

アーカイブのアップロード API コールを使用して、1 回のオペレーションでアーカイブをアップロードすることができます。詳細については、「[アーカイブのアップロード (POST archive)](api-archive-post.md)」を参照してください。