

 **このページは、ボールトと 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 ストレージクラスへの移行を検討してください。

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

# Amazon Glacier でのAWS SDK for .NET の使用
<a name="using-aws-sdk-for-dot-net"></a>

AWS SDK for .NET API は、`AWSSDK.dll` で利用できます。AWS SDK for .NET のダウンロードについては、「[サンプルコードライブラリ](https://aws.amazon.com/sdkfornet/)」を参照してください。「[Amazon Glacier での AWS SDKs の使用](using-aws-sdk.md)」で説明しているように、AWS SDK for .NET には高レベル API と低レベル API があります。

**注記**  
低レベル API と高レベル API により、Amazon Glacier へのアクセスを目的としたスレッドセーフのクライアントが提供されます。最善の方法としては、ご利用のアプリケーションでクライアントを 1 つ作成し、そのクライアントをスレッド間で再利用することです。

**Topics**
+ [低レベル API の使用](#about-low-level-dotnet-api)
+ [高レベル API の使用](#about-high-level-dotnet-api)
+ [コード例の実行](#setting-up-and-testing-sdk-dotnet)
+ [エンドポイントの設定](#setting-sdk-dot-net-endpoint)

## 低レベル API の使用
<a name="about-low-level-dotnet-api"></a>

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

たとえば、`AmazonGlacierClient` クラスには、ボールト作成のための `CreateVault` メソッドがあります。このメソッドは、ボールトの作成 REST オペレーションに対応するものです (「[ボールトの作成 (PUT vault)](api-vault-put.md)」を参照してください)。このメソッドを使用するには、次の C\$1 コードスニペットに示すように、`CreateVaultRequest` クラスと `CreateVaultResponse` クラスのインスタンスを作成して、リクエスト情報を指定し、Amazon Glacier のレスポンスを受け取る必要があります。

 

```
AmazonGlacierClient client;
client = new AmazonGlacierClient(Amazon.RegionEndpoint.USEast1); 

CreateVaultRequest request = new CreateVaultRequest()
{
  AccountId = "-",
  VaultName = "*** Provide vault name ***"
};

CreateVaultResponse response = client.CreateVault(request);
```

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

 

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

## 高レベル API の使用
<a name="about-high-level-dotnet-api"></a>

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

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

 

```
string vaultName = "examplevault";
string archiveToUpload = "c:\folder\exampleArchive.zip";

var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USEast1);
string archiveId = manager.Upload(vaultName, "archive description", archiveToUpload).ArchiveId;
```

実行したオペレーションはいずれも、`ArchiveTransferManager` オブジェクトの作成時に指定したAWSリージョンに適用される点に注意してください。このガイドの高レベル API の例では、すべてこのパターンを使用しています。

 

**注記**  
高レベルの `ArchiveTransferManager` クラスには、依然として低レベルの `AmazonGlacierClient` クライアントが必要です。このクライアントは、明示的に渡すことや、`ArchiveTransferManager` で作成することができます。

## コード例の実行
<a name="setting-up-and-testing-sdk-dotnet"></a>

.NET コード例の使用を最も手早く開始する方法は、AWS SDK for .NET をインストールすることです。詳細については、[「Amazon SDK for .NET」](https://aws.amazon.com/sdkfornet/)を参照してください。

以下の手順では、このガイドに示しているコード例をテストするためのステップを示しています。


**.NET コード例作成の一般的な手順 (Visual Studio 使用)**  

|  |  | 
| --- |--- |
| 1 | Amazon SDK for .NET のトピック「[AWS 認証情報の設定](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/creds-assign.html)」で説明しているように、AWS 認証情報プロファイルを作成します。  | 
| 2 |  *AWS空の プロジェクト* テンプレートを使用して、新しい Visual Studio プロジェクトを作成します。  | 
| 3 | プロジェクトファイル `Program.cs` 内のコードを、任意のセクションのコードで置き換えます。 | 
| 4 |   コードを実行します。AWS マネジメントコンソール を使用して、オブジェクトが作成されることを確認します。AWS マネジメントコンソール の詳細については、[http://aws.amazon.com/console/](https://aws.amazon.com/console/) を参照してください。  | 

## エンドポイントの設定
<a name="setting-sdk-dot-net-endpoint"></a>

デフォルトでは、AWS SDK for .NETエンドポイントを米国西部 (オレゴン) リージョン (`https://glacier.us-west-2.amazonaws.com`)。以下の C\$1 スニペットに示すように、エンドポイントを他のAWSリージョンに設定できます。

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

**Example**  

```
AmazonGlacierClient client = new AmazonGlacierClient(Amazon.RegionEndpoint.USWest2);
```

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

 

```
var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2);
```

現在サポートされているAWSリージョンとエンドポイントのリストについては、「[Amazon Glacier へのアクセス](amazon-glacier-accessing.md)」を参照してください。