

 **此頁面僅適用於使用 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/)

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

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

 適用於 Java 的 AWS SDK 同時提供 Amazon Glacier (Amazon Glacier) 的高階和低階 APIs，如中所述[搭配 Amazon Glacier 使用 AWS SDKs](using-aws-sdk.md)。如需下載 的相關資訊 適用於 Java 的 AWS SDK，請參閱適用於 [Java 的 Amazon 開發套件](https://aws.amazon.com/sdkforjava/)。

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

**Topics**
+ [使用低階 API](#about-low-level-java-api)
+ [使用高階 API](#about-high-level-java-api)
+ [使用 Eclipse 執行 Amazon Glacier 的 Java 範例](#setting-up-and-testing-sdk-java)
+ [設定終端節點](#setting-sdk-java-endpoint)

## 使用低階 API
<a name="about-low-level-java-api"></a>

低階`AmazonGlacierClient`類別提供映射至 Amazon Glacier 基礎 REST 操作的所有方法 ()[Amazon Glacier 的 API 參考](amazon-glacier-api.md)。呼叫任何這些方法時，您必須建立對應的請求物件，並提供回應物件，其中方法可以傳回 Amazon Glacier 回應給 操作。

例如，`AmazonGlacierClient` 類別提供 `createVault` 方法來建立保存庫。此方法對應到底層建立保存庫 REST 作業 (請參閱 [建立保存庫 (PUT 保存庫)](api-vault-put.md))。若要使用此方法，您必須建立接收 Amazon Glacier 回應的`CreateVaultResult`物件執行個體，如下列 Java 程式碼片段所示：

 

```
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);
```

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

 

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

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

為了進一步簡化您的應用程式開發， 適用於 Java 的 AWS SDK 提供 `ArchiveTransferManager`類別，可針對低階 API 中的某些方法實作更高層級的抽象。它為封存操作提供有用的方法，例如 `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 區域， 會將 適用於 Java 的 AWS SDK 設定為`us-east-1`預設 AWS 區域。

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

 

**注意**  
高階 `ArchiveTransferManager` 類別可以使用 `AmazonGlacierClient` 執行個體或 `AWSCredentials` 執行個體來建構。

## 使用 Eclipse 執行 Amazon Glacier 的 Java 範例
<a name="setting-up-and-testing-sdk-java"></a>

開始使用 Java 程式碼範例的最簡單方式是安裝最新的 AWS Toolkit for Eclipse。如需安裝或更新到最新工具組的詳細資訊，請前往 [ http://aws.amazon.com/eclipse](https://aws.amazon.com/eclipse)。下列任務會引導您建立與測試本節中所提供的 Java 程式碼範例。


**建立 Java 程式碼之一般程序的範例**  

|  |  | 
| --- |--- |
| 1 |  如 Amazon SDK for Java 中的提供登入資料 適用於 Java 的 AWS SDK 主題所述，為您的 AWS 登入資料建立預設登入資料設定檔。 [AWS](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html)  | 
| 2 | 在 Eclipse 中建立新的 AWS Java 專案。專案是使用 適用於 Java 的 AWS SDK所預先設定。 | 
| 3 | 將程式碼從您所讀取的區段複製至專案。 | 
| 4 | 提供任何必要資料，以更新程式碼。例如，如果上傳檔案，請提供檔案路徑與儲存貯體名稱。 | 
| 5 | 執行程式碼。驗證是使用 AWS 管理主控台來建立物件。如需 的詳細資訊 AWS 管理主控台，請前往 https：//[http://aws.amazon.com/console/](https://aws.amazon.com/console/)。 | 

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

根據預設， 適用於 Java 的 AWS SDK 會使用端點 `https://glacier.us-east-1.amazonaws.com`。您可以明確地設定終端節點，如以下 Java 程式碼片段所示。

以下程式碼片段介紹如何將端點設定為低階 API 中的美國西部 (奧勒岡) 區域 (`us-west-2`)。

**Example**  

```
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 Glacier](amazon-glacier-accessing.md)。