Descarga de un archivo de un almacén de Amazon Glacier con AWS SDK para .NET - Amazon Glacier

Esta página es solo para los clientes actuales del servicio Amazon Glacier que utilizan Vaults y la API de REST original de 2012.

Si busca soluciones de almacenamiento de archivos, se recomienda que utilice las clases de almacenamiento de Amazon Glacier en Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive. Para obtener más información sobre estas opciones de almacenamiento, consulte las clases de almacenamiento de Amazon Glacier.

Amazon Glacier (servicio original independiente basado en bóveda) ya no acepta nuevos clientes. Amazon Glacier es un servicio independiente propio APIs que almacena datos en almacenes y es distinto de las clases de almacenamiento Amazon S3 y Amazon S3 Glacier. Sus datos actuales permanecerán seguros y accesibles en Amazon Glacier de forma indefinida. No hay que hacer migraciones. Para un almacenamiento de archivos a largo plazo y de bajo costo, AWS recomienda las clases de almacenamiento Amazon S3 Glacier, que ofrecen una experiencia de cliente superior con S3 basada en cubos APIs, Región de AWS disponibilidad total, costos más bajos e AWS integración de servicios. Si desea mejorar las capacidades, considere la posibilidad de migrar a las clases de almacenamiento de Amazon S3 Glacier mediante nuestra AWS Guía de soluciones para la transferencia de datos de los almacenes de Amazon Glacier a las clases de almacenamiento de Amazon S3 Glacier.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Descarga de un archivo de un almacén de Amazon Glacier con AWS SDK para .NET

En el siguiente ejemplo de código C#, se utiliza la API de alto nivel de AWS SDK para .NET para descargar el archivo que anteriormente se cargó en Carga de un archivo en un almacén de Amazon Glacier con AWS SDK para .NET. En el ejemplo de código, observe lo siguiente:

  • El ejemplo crea una instancia de la clase ArchiveTransferManager para el punto de conexión especificado de la región de Amazon Glacier.

  • En el ejemplo de código se utiliza la región Oeste de EE. UU. (Oregón) (us-west-2) para que la ubicación sea la misma en la que anteriormente creó el almacén en Paso 2: Creación de un almacén en Amazon Glacier.

  • En el ejemplo se usa la operación de API Download de la clase ArchiveTransferManager para descargar el archivo. El ejemplo crea un tema de Amazon Simple Notification Service (Amazon SNS) y una cola de Amazon Simple Queue Service (Amazon SQS) que se suscribe a ese tema. Si ha creado un usuario administrador de AWS Identity and Access Management (IAM) como se indica en Paso 1: Antes de empezar a usar Amazon Glacier, el usuario dispone de los permisos de IAM necesarios para la creación y uso del tema de Amazon SNS y la cola de Amazon SQS.

  • A continuación, el ejemplo inicia el trabajo de recuperación del archivo y sondea la cola para determinar si el archivo se encuentra disponible. Una vez que el archivo está disponible, comienza la descarga. Para obtener más información sobre los tiempos de recuperación, consulte Opciones de recuperación de archivos.

Para obtener instrucciones paso a paso sobre cómo ejecutar este ejemplo, consulte Ejecución de los ejemplos de código. Debe actualizar el código que se muestra con el ID del archivo que cargó en Paso 3: Carga de un archivo en un almacén de Amazon Glacier.

ejemplo Descarga de un archivo con la API de alto nivel de AWS SDK para .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); } } } }