此頁面僅適用於使用 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 .NET 在 Amazon S3 Glacier 中設定文件庫通知
以下是使用 AWS SDK for .NET 低階 API 設定文件庫通知的步驟。
-
建立
AmazonGlacierClient
類別的執行個體 (用戶端)。您需要指定文件庫所在的 AWS 區域。所有您使用此用戶端執行的操作均會套用到該 AWS 區域。
-
您可以透過建立
SetVaultNotificationsRequest
類別的執行個體,來提供通知組態資訊。您需要提供文件庫名稱、通知組態資訊和帳戶 ID。如果您不提供帳戶 ID,則會使用與您提供來簽署請求之登入資料關聯的帳戶 ID。如需更多詳細資訊,請參閱 將 AWS SDK for .NET 與 Amazon S3 Glacier 搭配使用。
在指定通知設定時,您提供現有 Amazon SNS 主題的 Amazon Resource Name (ARN) 和要進行通知的一或多個事件。如需支援的事件清單,請參閱設定文件庫通知組態 (PUT 通知的組態))。
-
以參數形式提供請求物件,以便執行
SetVaultNotifications
方法。 -
在設定有關文件庫的通知組態之後,您可以透過呼叫
GetVaultNotifications
方法擷取組態資訊,以及透過呼叫用戶端所提供的DeleteVaultNotifications
方法將其移除。
範例:使用 AWS SDK for .NET 設定文件庫的通知組態
下列 C# 程式碼範例描述前述步驟。此範例在美國西部 (奧勒岡) 區域設定有關文件庫 (「examplevault
」) 的通知設定、擷取設定,然後將其刪除。當 ArchiveRetrievalCompleted
事件或 InventoryRetrievalCompleted
事件發生時,設定請求 Amazon S3 Glacier (S3 Glacier) 將通知傳送到指定的 Amazon SNS 主題。
注意
如需基礎 REST API 的資訊,請參閱 文件庫操作。
如需執行下列範例的逐步說明,請參閱「執行程式碼範例」。您需要如所示更新程式碼,並提供現有的文件庫名稱和 Amazon SNS 主題。
using System; using System.Collections.Generic; using Amazon.Glacier; using Amazon.Glacier.Model; using Amazon.Runtime; namespace glacier.amazon.com.rproxy.goskope.com.docsamples { class VaultNotificationSetGetDelete { static string vaultName = "examplevault"; static string snsTopicARN = "*** Provide Amazon SNS topic ARN ***"; static IAmazonGlacier client; public static void Main(string[] args) { try { using (client = new AmazonGlacierClient(Amazon.RegionEndpoint.USWest2)) { Console.WriteLine("Adding notification configuration to the vault."); SetVaultNotificationConfig(); GetVaultNotificationConfig(); Console.WriteLine("To delete vault notification configuration, press Enter"); Console.ReadKey(); DeleteVaultNotificationConfig(); } } catch (AmazonGlacierException e) { Console.WriteLine(e.Message); } catch (AmazonServiceException e) { Console.WriteLine(e.Message); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("To continue, press Enter"); Console.ReadKey(); } static void SetVaultNotificationConfig() { SetVaultNotificationsRequest request = new SetVaultNotificationsRequest() { VaultName = vaultName, VaultNotificationConfig = new VaultNotificationConfig() { Events = new List<string>() { "ArchiveRetrievalCompleted", "InventoryRetrievalCompleted" }, SNSTopic = snsTopicARN } }; SetVaultNotificationsResponse response = client.SetVaultNotifications(request); } static void GetVaultNotificationConfig() { GetVaultNotificationsRequest request = new GetVaultNotificationsRequest() { VaultName = vaultName, AccountId = "-" }; GetVaultNotificationsResponse response = client.GetVaultNotifications(request); Console.WriteLine("SNS Topic ARN: {0}", response.VaultNotificationConfig.SNSTopic); foreach (string s in response.VaultNotificationConfig.Events) Console.WriteLine("Event : {0}", s); } static void DeleteVaultNotificationConfig() { DeleteVaultNotificationsRequest request = new DeleteVaultNotificationsRequest() { VaultName = vaultName }; DeleteVaultNotificationsResponse response = client.DeleteVaultNotifications(request); } } }