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
Carga de un archivo en una única operación con AWS SDK para .NET en Amazon Glacier
Las API de alto y de bajo nivel que proporciona Amazon SDK para .NET ofrecen un método para cargar un archivo en una única operación.
Temas
Actualización de un archivo con la API de alto nivel de AWS SDK para .NET
La clase ArchiveTransferManager de la API de alto nivel le brinda el método Upload, que le permite cargar un archivo en un almacén.
nota
Puede utilizar el método Upload para cargar archivos grandes o pequeños. En función del tamaño del archivo que se va a cargar, este método determina si la carga se va a efectuar en una sola operación o se va a utilizar una API de carga multiparte para cargar el archivo por partes.
Ejemplo: carga de un archivo con la API de alto nivel de AWS SDK para .NET
En el ejemplo de código C# siguiente, se carga un archivo a un almacén (examplevault) de la región Oeste de EE. UU. (Oregón).
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 mostrado con el nombre del archivo que quiera cargar.
using System; using Amazon.Glacier; using Amazon.Glacier.Transfer; using Amazon.Runtime; namespace glacier.amazon.com.docsamples { class ArchiveUploadHighLevel { 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, "upload archive test", archiveToUpload).ArchiveId; Console.WriteLine("Archive ID: (Copy and save this ID for use in other examples.) : {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(); } } }
Carga de un archivo en una única operación con la API de bajo nivel de AWS SDK para .NET
La API de bajo nivel dispone de métodos para todas las operaciones de archivo. A continuación, se indican los pasos necesarios para cargar un archivo con AWS SDK para .NET.
-
Cree una instancia de la clase
AmazonGlacierClient(el cliente).Debe especificar la región de AWS en la que quiere cargar el archivo. Todas las operaciones que realice con este cliente se aplican a esa región de AWS.
-
Proporcione la información de la solicitud creando una instancia de la clase
UploadArchiveRequest.Además de los datos que desea cargar, debe proporcionar una suma de comprobación (un hash en árbol SHA-256) de la carga, el nombre del almacén y el ID de la cuenta.
Si no proporciona el ID de la cuenta, se presumirá que se trata del ID de cuenta asociado a las credenciales proporcionadas para firmar la solicitud. Para obtener más información, consulte Uso de AWS SDK para .NET con Amazon Glacier.
-
Ejecute el método
UploadArchiveproporcionando el objeto de solicitud como parámetro.En respuesta, Amazon Glacier devuelve el ID del archivo que acaba de cargarse.
Ejemplo: Carga de un archivo en una única operación con la API de bajo nivel de AWS SDK para .NET
En el siguiente ejemplo de código C#, se ilustran los pasos anteriores. En el ejemplo se utiliza AWS SDK para .NET para cargar un archivo en un almacén (examplevault).
nota
Para obtener información sobre la API de REST subyacente para cargar un archivo en una única solicitud, consulte Carga de archivo (POST archivo).
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 mostrado con el nombre del archivo que quiera cargar.
using System; using System.IO; using Amazon.Glacier; using Amazon.Glacier.Model; using Amazon.Runtime; namespace glacier.amazon.com.docsamples { class ArchiveUploadSingleOpLowLevel { static string vaultName = "examplevault"; static string archiveToUpload = "*** Provide file name (with full path) to upload ***"; public static void Main(string[] args) { AmazonGlacierClient client; try { using (client = new AmazonGlacierClient(Amazon.RegionEndpoint.USWest2)) { Console.WriteLine("Uploading an archive."); string archiveId = UploadAnArchive(client); Console.WriteLine("Archive ID: {0}", archiveId); } } 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 string UploadAnArchive(AmazonGlacierClient client) { using (FileStream fileStream = new FileStream(archiveToUpload, FileMode.Open, FileAccess.Read)) { string treeHash = TreeHashGenerator.CalculateTreeHash(fileStream); UploadArchiveRequest request = new UploadArchiveRequest() { VaultName = vaultName, Body = fileStream, Checksum = treeHash }; UploadArchiveResponse response = client.UploadArchive(request); string archiveID = response.ArchiveId; return archiveID; } } } }