Carga de un archivo en 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 almacenes) ya no aceptará nuevos clientes a partir del 15 de diciembre de 2025, sin que ello afecte a los clientes actuales. Amazon Glacier es un servicio independiente con sus propias API 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 del cliente superior con las API basadas en buckets de S3, 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 AWSGuía de soluciones para la transferencia de datos de los almacenes de Amazon Glacier a las clases de almacenamiento de Amazon S3 Glacier.

Carga de un archivo en 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 cargar un archivo de ejemplo en el almacén. 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 este ejemplo de código se utiliza la región Oeste de EE. UU. (Oregón) (us-west-2).

  • En el ejemplo se usa la operación de API Upload de la clase ArchiveTransferManager para cargar el archivo. En el caso de archivos pequeños, esta operación carga el archivo directamente en Amazon Glacier. En el caso de archivos de mayor tamaño, esta operación utiliza la operación de API de carga multiparte de Amazon Glacier para dividir el archivo en varias partes, lo que permite una mejor recuperación en caso de que se produzca algún error al transmitir los datos a Amazon Glacier.

Para obtener instrucciones paso a paso acerca de cómo ejecutar el ejemplo siguiente, consulte Ejecución de los ejemplos de código. Debe actualizar el código que se muestra con el nombre del almacén y el nombre del archivo que quiere cargar.

nota

Amazon Glacier mantiene un inventario de todos los archivos guardados en los almacenes. Cuando cargue el archivo del ejemplo siguiente, este no aparecerá en ningún almacén de la consola de administración hasta que se haya actualizado el inventario del almacén. Por lo general, esta actualización se realiza una vez al día.

ejemplo Carga 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 ArchiveUploadHighLevel_GettingStarted { static string vaultName = "examplevault"; static string archiveToUpload = "*** Provide file name (with full path) to upload ***"; public static void Main(string[] args) { try { var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2); // Upload an archive. string archiveId = manager.Upload(vaultName, "getting started archive test", archiveToUpload).ArchiveId; Console.WriteLine("Copy and save the following Archive ID for the next step."); Console.WriteLine("Archive ID: {0}", archiveId); 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(); } } }