此頁面僅適用於使用 Vault 和 REST API 2012 年原始版本的 S3 Glacier 服務的現有客戶。
如果您要尋找封存儲存解決方案,建議您在 Amazon S3、S3 Glacier S3 Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 中使用 S3 Glacier 儲存類別。若要進一步了解這些儲存選項,請參閱 Amazon S3
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 AWS SDK for Java 與 Amazon S3 Glacier 搭配使用
AWS SDK for Java 為 Amazon S3 Glacier (S3 Glacier) 提供高階和低階的 API,如 使用 AWS 軟體開發套件搭配 Amazon S3 冰川 所述。如需下載 AWS SDK for Java 的相關資訊,請參閱適用於 Java 的 Amazon 開發套件
注意
AWS SDK for Java 為存取 S3 Glacier 提供安全執行緒用戶端。根據最佳實務,您的應用程式應該建立一個用戶端,並在執行緒之間重複使用該用戶端。
使用低階 API
低階 AmazonGlacierClient
類別提供對應到 S3 Glacier (Amazon S3 Glacier API 參考) 基礎 REST 操作的所有方法。在呼叫這些方法中的任何一種方法時,您必須建立對應的請求物件,並提供一個回應物件,其中該方法可以將 S3 Glacier 回應傳回到該操作。
例如,AmazonGlacierClient
類別提供 createVault
方法來建立文件庫。此方法對應到底層建立文件庫 REST 操作 (請參閱 建立文件庫 (PUT 文件庫))。若要使用這個方法,您必須建立接收 S3 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
。但是,當使用 AWS SDK for Java,請求中的 AccountId
是可選的,因此本指南中的所有低階範例都不設定這個值。AccountId
是 AWS 帳戶 識別碼。此值必須符合與用於簽署請求之憑證關聯的 AWS 帳戶 ID。您可以指定 AWS 帳戶 識別碼或選擇性使用「-」,在這種情況下,S3 Glacier 會使用與用於簽署請求之憑證關聯的 AWS 帳戶 ID。如果您要指定帳戶 ID,請勿在其中包含任何連字號。當您使用 AWS SDK for Java,如果不提供帳戶 ID,則該程式庫將帳戶 ID 設定為「-」。
使用高階 API
為了進一步簡化您的應用程式開發,AWS SDK for Java 提供 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 區域,AWS SDK for Java 將 us-east-1
設定為預設 AWS 區域。
在指南中的所有高階範例都使用此模式。
注意
高階 ArchiveTransferManager
類別可以使用 AmazonGlacierClient
執行個體或 AWSCredentials
執行個體來建構。
使用 Eclipse 執行 Amazon S3 Glacier 的 Java 範例
開始使用 Java 程式碼範例的最簡單方式是安裝最新的 AWS Toolkit for Eclipse。如需安裝或更新到最新工具組的詳細資訊,請前往 http://aws.amazon.com/eclipse
1 |
建立 AWS 憑證的預設憑證設定檔,如 AWS SDK for Java 主題在適用於 Java 的 Amazon 開發套件中提供 AWS 憑證中所述。 |
2 |
在 Eclipse 中建立新 AWS Java 專案。專案是使用AWS SDK for Java所預先設定。 |
3 |
將程式碼從您所讀取的區段複製至專案。 |
4 |
提供任何必要資料,以更新程式碼。例如,如果上傳檔案,請提供檔案路徑與儲存貯體名稱。 |
5 |
執行程式碼。驗證是使用 AWS Management Console來建立物件。如需有關 AWS Management Console 的詳細資訊,請移至 http://aws.amazon.com/console/ |
設定終端節點
預設情況下,AWS SDK for Java 使用端點 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 S3 Glacier。