此頁面僅適用於使用 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 儲存類別
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
適用於 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 中的某些方法實作更高層級的抽象。它為封存操作提供有用的方法,例如 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 區域, us-east-1會將 適用於 Java 的 AWS SDK 設定為預設 AWS 區域。
在指南中的所有高階範例都使用此模式。
注意
高階 ArchiveTransferManager 類別可以使用 AmazonGlacierClient 執行個體或 AWSCredentials 執行個體來建構。
使用 Eclipse 執行 Amazon Glacier 的 Java 範例
開始使用 Java 程式碼範例的最簡單方式是安裝最新的 AWS Toolkit for Eclipse。如需安裝或更新到最新工具組的詳細資訊,請前往 http://aws.amazon.com/eclipse
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。