Configurar notificações de cofre no Amazon S3 Glacier usando o AWS SDK para .NET - Amazon S3 Glacier

Esta página destina-se somente a clientes atuais do serviço S3 Glacier que usam cofres e a API REST original de 2012.

Se você estiver procurando soluções de armazenamento de arquivos, sugerimos usar as classes de armazenamento do S3 Glacier no Amazon S3: S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive. Para saber mais sobre essas opções de armazenamento, consulte Classes de armazenamento do Amazon S3 Glacier e Noções básicas sobre as classes de armazenamento S3 Glacier para armazenamento de dados de longo prazo no Guia do usuário do Amazon S3. Essas classes de armazenamento usam a API do Amazon S3, estão disponíveis em todas as regiões e podem ser gerenciadas no console do Amazon S3. Elas oferecem análise de custos de armazenamento, Lente de Armazenamento, recursos avançados de criptografia opcionais e muito mais.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar notificações de cofre no Amazon S3 Glacier usando o AWS SDK para .NET

Estas são as etapas para configurar notificações em um cofre usando a API de nível inferior do AWS SDK para .NET.

  1. Crie uma instância da classe AmazonGlacierClient (o cliente).

    Você precisa especificar uma AWS região onde o cofre reside. Todas as operações que você executa usando esse cliente se aplicam a essa AWS região.

  2. Forneça informações de configuração da notificação criando uma instância da classe SetVaultNotificationsRequest.

    Você precisa fornecer o nome do cofre, as informações de configuração da notificação e o ID da conta. Se você não fornecer um ID da conta, o ID da conta associado às credenciais fornecidas por você para assinar a solicitação será pressuposto. Para obter mais informações, consulte Usando o AWS SDK para .NET com o Amazon S3 Glacier.

    Especificando uma configuração de notificação, você fornece o nome do recurso da Amazon (ARN) de um tópico do Amazon SNS existente e um ou mais eventos para os quais deseja ser notificado. Para obter uma lista de eventos compatíveis, consulte Definir configuração de notificação de cofre (PUT notification-configuration).

  3. Execute o método SetVaultNotifications fornecendo o objeto de solicitação como um parâmetro.

  4. Depois de definir a configuração de notificação em um cofre, você poderá recuperar informações de configuração chamando o método GetVaultNotifications e removê-la chamando o método DeleteVaultNotifications fornecido pelo cliente.

Exemplo: definir a configuração de notificação em um cofre usando o AWS SDK para .NET

O exemplo de código do C# a seguir ilustra as etapas anteriores. O exemplo define a configuração de notificação no cofre (“examplevault”) na região oeste dos EUA (Oregon), recupera a configuração e a exclui. A configuração solicita que o Amazon S3 Glacier (S3 Glacier) envie uma notificação para o tópico Amazon SNS especificado quando o evento ArchiveRetrievalCompleted ou o InventoryRetrievalCompleted ocorre.

nota

Para obter informações sobre a API REST subjacente, consulte Operações de cofre.

Para step-by-step obter instruções sobre como executar o exemplo a seguir, consulteExecutar exemplos de código. Você precisa atualizar o código conforme mostrado e fornecer um nome de cofre existente, além de um tópico do Amazon SNS.

using System; using System.Collections.Generic; using Amazon.Glacier; using Amazon.Glacier.Model; using Amazon.Runtime; namespace glacier.amazon.com.rproxy.govskope.ca.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); } } }