

 **此頁面僅適用於使用 Vaults 和 2012 年原始 REST API 的 Amazon Glacier 服務的現有客戶。**

如果您要尋找封存儲存解決方案，建議您在 Amazon Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 中使用 Amazon Glacier 儲存類別。 Amazon S3 若要進一步了解這些儲存選項，請參閱 [Amazon Glacier 儲存類別](https://aws.amazon.com/s3/storage-classes/glacier/)。

Amazon Glacier （原始獨立保存庫型服務） 不再接受新客戶。Amazon Glacier 是一項獨立服務，具有自己的 APIs，可將資料存放在保存庫中，並與 Amazon S3 和 Amazon S3 Glacier 儲存類別不同。您現有的資料將在 Amazon Glacier 中無限期保持安全且可存取。不需要遷移。對於低成本、長期的封存儲存， AWS 建議使用 [Amazon S3 Glacier 儲存類別](https://aws.amazon.com/s3/storage-classes/glacier/)，透過 S3 儲存貯體型 APIs、完整 AWS 區域 可用性、降低成本 AWS 和服務整合，提供卓越的客戶體驗。如果您想要增強功能，請考慮使用我們的解決方案指南，將資料從 Amazon S3 Glacier 保存庫傳輸至 Amazon S3 Glacier 儲存類別，以遷移至 Amazon S3 Glacier 儲存類別。 [AWS Amazon Glacier Amazon S3 ](https://aws.amazon.com/solutions/guidance/data-transfer-from-amazon-s3-glacier-vaults-to-amazon-s3/)

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 適用於 .NET 的 AWS SDK 搭配 Amazon Glacier 使用
<a name="using-aws-sdk-for-dot-net"></a>

 適用於 .NET 的 AWS SDK API 可在 中使用`AWSSDK.dll`。如需下載 的相關資訊 適用於 .NET 的 AWS SDK，請前往[範例程式碼程式庫](https://aws.amazon.com/sdkfornet/)。如中所述[搭配 Amazon Glacier 使用 AWS SDKs](using-aws-sdk.md)， 同時 適用於 .NET 的 AWS SDK 提供高階和低階 APIs。

**注意**  
低階 API 和高階 API 提供用於存取 Amazon Glacier 的執行緒安全用戶端。根據最佳實務，您的應用程式應該建立一個用戶端，並在執行緒之間重複使用該用戶端。

**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 保存庫)](api-vault-put.md))。若要使用此方法，您必須建立 `CreateVaultRequest`和 `CreateVaultResponse`類別的執行個體，以提供請求資訊並接收 Amazon Glacier 回應，如下列 C\# 程式碼片段所示：

 

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

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

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

在指南中的所有低階範例都使用此模式。

 

**注意**  
在建立請求時，前置程式碼區段指定 `AccountId`。不過，使用 時 適用於 .NET 的 AWS SDK，請求`AccountId`中的 是選用的，因此本指南中的所有低階範例都不會設定此值。`AccountId` 是 AWS 帳戶 ID。此值必須與用來簽署請求的登入資料相關聯的 AWS 帳戶 ID 相符。您可以指定 AWS 帳戶 ID 或選擇性的 '-'，在這種情況下，Amazon Glacier 會使用與用來簽署請求之登入資料相關聯的 AWS 帳戶 ID。如果您要指定帳戶 ID，請勿在其中包含任何連字號。使用 時 適用於 .NET 的 AWS SDK，如果您不提供帳戶 ID，程式庫會將帳戶 ID 設定為 '-'。

## 使用高階 API
<a name="about-high-level-dotnet-api"></a>

為了進一步簡化您的應用程式開發， 適用於 .NET 的 AWS SDK 提供 `ArchiveTransferManager`類別，可針對低階 API 中的某些方法實作更高層級的抽象。它為封存操作提供有用的方法，例如 `Upload` 和 `Download`。

例如，以下 C\# 程式碼片段使用 `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 區域。在指南中的所有高階範例都使用此模式。

 

**注意**  
高階 `ArchiveTransferManager` 類別仍需要低層 `AmazonGlacierClient` 用戶端，您可以明確地通過該用戶端或 `ArchiveTransferManager` 建立用戶端。

## 執行程式碼範例
<a name="setting-up-and-testing-sdk-dotnet"></a>

開始使用 .NET 程式碼範例的最簡單方式是安裝 適用於 .NET 的 AWS SDK。如需詳細資訊，請前往[適用於 .NET 的 Amazon 開發套件](https://aws.amazon.com/sdkfornet/)。

下列程序概述的步驟，讓您可以測試本指南中所提供的程式碼範例。


**建立 .NET 程式碼範例之一般程序 (使用 Visual Studio)**  

|  |  | 
| --- |--- |
| 1 | 建立登入 AWS 資料的登入資料設定檔，如 Amazon SDK for .NET 主題[設定 AWS 登入](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/creds-assign.html)資料中所述。 | 
| 2 | 使用 *AWS 空白專案*範本建立新的 Visual Studio 專案。 | 
| 3 | 將專案檔 `Program.cs` 中的程式碼取代為您所讀取區段中的程式碼。 | 
| 4 |  執行程式碼。驗證是使用 AWS 管理主控台來建立物件。如需詳細資訊 AWS 管理主控台，請前往 https：//[http://aws.amazon.com/console/](https://aws.amazon.com/console/)。 | 

## 設定終端節點
<a name="setting-sdk-dot-net-endpoint"></a>

根據預設， 適用於 .NET 的 AWS SDK 會將端點設定為美國西部 （奧勒岡） 區域 ()`https://glacier.us-west-2.amazonaws.com`。您可以將端點設定為其他 AWS 區域，如下列 C\# 程式碼片段所示。

以下程式碼片段介紹如何將端點設定為低階 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)。