Fazer download de um arquivo de um cofre no S3 Glacier usando AWS SDK for .NET - Amazon S3 Glacier

Esta página é somente para clientes existentes do serviço S3 Glacier que usam o Vaults e a API REST original de 2012.

Se você estiver procurando por soluções de armazenamento de arquivamento, sugerimos usar as classes de armazenamento 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 S3 Glacier e Armazenamento de dados de longo prazo usando classes de armazenamento S3 Glacier 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. Eles oferecem recursos como análise de custos de armazenamento, lente de armazenamento, recursos de segurança, incluindo várias opções de criptografia 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á.

Fazer download de um arquivo de um cofre no S3 Glacier usando AWS SDK for .NET

O exemplo de código C# a seguir usa a API de nível superior de AWS SDK for .NET para fazer download do arquivo do qual você fez upload em Fazer upload de um arquivo para um cofre no S3 Glacier usando AWS SDK for .NET. No exemplo de código, observe o seguinte:

  • O exemplo cria uma instância da classe ArchiveTransferManager para o endpoint especificado da região da Amazon S3 Glacier.

  • O exemplo de código usa a Região Oeste dos EUA (Oregon) (us-west-2) de acordo com o local onde você previamente criou o cofre.

  • O exemplo usa a operação Download API da classe ArchiveTransferManager para baixar seu arquivo. O exemplo cria um tópico do Amazon Simple Notification Service (Amazon SNS) e uma Amazon Simple Queue Service (Amazon SQS) que está inscrita nesse tópico. Se você criou um AWS Identity and Access Management usuário administrativo (IAM) conforme as instruções Etapa 1: antes de começar com o S3 Glacier, seu usuário tem as permissões necessárias para criar e usar o tópico do Amazon SNS e a fila do Amazon SQS.

  • Em seguida, o exemplo inicia o trabalho de recuperação do arquivo e sonda a fila em busca do arquivo disponível. Assim que o arquivo estiver disponível, o download começará. Para obter informações sobre tempos de recuperação, consulte Opções de recuperação de arquivos.

Para instruções detalhadas sobre como executar esse exemplo, consulte Executar exemplos de código. Você precisa atualizar o código conforme mostrado com o ID do arquivo do qual você fez upload fez em Etapa 3: fazer upload de um arquivo para um cofre no S3 Glacier .

exemplo Fazer download de um arquivo usando a API de nível superior de AWS SDK for .NET
using System; using Amazon.Glacier; using Amazon.Glacier.Transfer; using Amazon.Runtime; namespace glacier.amazon.com.docsamples { class ArchiveDownloadHighLevel_GettingStarted { static string vaultName = "examplevault"; static string archiveId = "*** Provide archive ID ***"; static string downloadFilePath = "*** Provide the file name and path to where to store the download ***"; public static void Main(string[] args) { try { var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2); var options = new DownloadOptions(); options.StreamTransferProgress += ArchiveDownloadHighLevel_GettingStarted.progress; // Download an archive. Console.WriteLine("Intiating the archive retrieval job and then polling SQS queue for the archive to be available."); Console.WriteLine("Once the archive is available, downloading will begin."); manager.Download(vaultName, archiveId, downloadFilePath, options); Console.WriteLine("To continue, press Enter"); Console.ReadKey(); } 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 int currentPercentage = -1; static void progress(object sender, StreamTransferProgressArgs args) { if (args.PercentDone != currentPercentage) { currentPercentage = args.PercentDone; Console.WriteLine("Downloaded {0}%", args.PercentDone); } } } }