適用於 Java 的 AWS SDK 搭配 Amazon Glacier 使用 - Amazon Glacier

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

如果您要尋找封存儲存解決方案,建議您在 Amazon Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 中使用 Amazon Glacier 儲存類別。 Amazon S3 若要進一步了解這些儲存選項,請參閱 Amazon Glacier 儲存類別

自 2025 年 12 月 15 日起,Amazon Glacier (原始獨立保存庫型服務) 將不再接受新客戶,不會影響現有客戶。Amazon Glacier 是一項獨立服務,具有自己的 APIs,可將資料存放在保存庫中,並與 Amazon S3 和 Amazon S3 Glacier 儲存類別不同。您現有的資料將在 Amazon Glacier 中無限期保持安全且可存取。不需要遷移。對於低成本、長期的封存儲存, AWS 建議採用 Amazon S3 Glacier 儲存類別,透過 S3 儲存貯體型 APIs、完整 AWS 區域 可用性、降低成本 AWS 和服務整合,提供卓越的客戶體驗。如果您想要增強功能,請考慮使用我們的解決方案指南,將資料從 Amazon S3 Glacier 保存庫傳輸至 Amazon S3 Glacier 儲存類別,以遷移至 Amazon S3 Glacier 儲存類別。 AWS Amazon Glacier Amazon S3

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

適用於 Java 的 AWS SDK 搭配 Amazon Glacier 使用

適用於 Java 的 AWS SDK 同時提供 Amazon Glacier (Amazon Glacier) 的高階和低階 APIs,如中所述搭配 Amazon Glacier 使用 AWS SDKs 。如需下載 的相關資訊 適用於 Java 的 AWS SDK,請參閱適用於 Java 的 Amazon 開發套件

注意

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

使用低階 API

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

例如,AmazonGlacierClient 類別提供 createVault 方法來建立保存庫。此方法對應到底層建立保存庫 REST 作業 (請參閱 建立保存庫 (PUT 保存庫))。若要使用此方法,您必須建立接收 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

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

例如,以下 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 區域, us-east-1會將 適用於 Java 的 AWS SDK 設定為預設 AWS 區域。

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

注意

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

使用 Eclipse 執行 Amazon Glacier 的 Java 範例

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

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

1

如 Amazon SDK for Java 中的提供登入資料 適用於 Java 的 AWS SDK 主題所述,為您的 AWS 登入資料建立預設登入資料設定檔。 AWS

2

在 Eclipse 中建立新的 AWS Java 專案。專案是使用 適用於 Java 的 AWS SDK所預先設定。

3

將程式碼從您所讀取的區段複製至專案。

4

提供任何必要資料,以更新程式碼。例如,如果上傳檔案,請提供檔案路徑與儲存貯體名稱。

5

執行程式碼。驗證是使用 AWS Management Console來建立物件。如需 的詳細資訊 AWS Management Console,請前往 https://http://aws.amazon.com/console/

設定終端節點

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

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

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