

 **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](https://aws.amazon.com/s3/storage-classes/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](https://aws.amazon.com/s3/storage-classes/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](https://aws.amazon.com/solutions/guidance/data-transfer-from-amazon-s3-glacier-vaults-to-amazon-s3/).

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.

# Carga de un archivo en una única operación
<a name="uploading-archive-single-operation"></a>

Tal y como se describe en [Carga de un archivo en Amazon Glacier](uploading-an-archive.md), puede cargar archivos más pequeños en una única operación. Sin embargo, recomendamos a nuestros clientes de Amazon Glacier (Amazon Glacier) que utilicen la carga multiparte para cargar archivos superiores a 100 MB. 

**Topics**
+ [Carga de un archivo en una sola operación mediante el AWS Command Line Interface](uploading-an-archive-single-op-using-cli.md)
+ [Carga de un archivo en una sola operación mediante el AWS SDK para Java](uploading-an-archive-single-op-using-java.md)
+ [Carga de un archivo en una sola operación mediante Amazon AWS SDK para .NET Glacier](uploading-an-archive-single-op-using-dotnet.md)
+ [Carga de un archivo en una única operación con la API de REST](uploading-an-archive-single-op-using-rest.md)

# Carga de un archivo en una sola operación mediante el AWS Command Line Interface
<a name="uploading-an-archive-single-op-using-cli"></a>

Puede cargar un archivo en Amazon Glacier (Amazon Glacier) mediante AWS Command Line Interface (AWS CLI).

**Topics**
+ [(Requisito previo) Configurar el AWS CLI](#Creating-Vaults-CLI-Setup)
+ [Ejemplo: cargue un archivo mediante el AWS CLI](#Uploading-Archives-CLI-Implementation)

## (Requisito previo) Configurar el AWS CLI
<a name="Creating-Vaults-CLI-Setup"></a>

1. Descargue y configure la AWS CLI. Para obtener instrucciones, consulte los siguientes temas en la *Guía del usuario de la AWS Command Line Interface *: 

    [Instalación del AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) 

   [Configuración del AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)

1. Compruebe AWS CLI la configuración introduciendo los siguientes comandos en la línea de comandos. Estos comandos no proporcionan las credenciales de forma explícita, por lo que se utilizan las credenciales del perfil predeterminado.
   + Pruebe a usar el comando de ayuda.

     ```
     aws help
     ```
   + Para obtener una lista de los almacenes de Amazon Glacier en la cuenta configurada, use el comando `list-vaults`. *123456789012*Sustitúyala por tu Cuenta de AWS ID.

     ```
     aws glacier list-vaults --account-id 123456789012
     ```
   + Para ver los datos de configuración actuales de AWS CLI, utilice el `aws configure list` comando.

     ```
     aws configure list
     ```

## Ejemplo: cargue un archivo mediante el AWS CLI
<a name="Uploading-Archives-CLI-Implementation"></a>

Para cargar un archivo, debe haber creado un almacén. Para obtener más información acerca de la creación de almacenes, consulte [Creación de un almacén en Amazon Glacier](creating-vaults.md).

1. Use el comando `upload-archive` para agregar un archivo a un almacén existente. En el siguiente ejemplo, reemplace los valores `vault name` y `account ID`. Para el parámetro `body`, especifique una ruta al archivo que quiere cargar.

   ```
   aws glacier upload-archive --vault-name awsexamplevault --account-id 123456789012 --body archive.zip
   ```

1.  Resultado previsto:

   ```
   {
       "archiveId": "kKB7ymWJVpPSwhGP6ycSOAekp9ZYe_--zM_mw6k76ZFGEIWQX-ybtRDvc2VkPSDtfKmQrj0IRQLSGsNuDp-AJVlu2ccmDSyDUmZwKbwbpAdGATGDiB3hHO0bjbGehXTcApVud_wyDw",
       "checksum": "969fb39823836d81f0cc028195fcdbcbbe76cdde932d4646fa7de5f21e18aa67",
       "location": "/123456789012/vaults/awsexamplevault/archives/kKB7ymWJVpPSwhGP6ycSOAekp9ZYe_--zM_mw6k76ZFGEIWQX-ybtRDvc2VkPSDtfKmQrj0IRQLSGsNuDp-AJVlu2ccmDSyDUmZwKbwbpAdGATGDiB3hHO0bjbGehXTcApVud_wyDw"
   }
   ```

   Cuando termine, el comando mostrará el ID del archivo, la suma de comprobación y la ubicación en Amazon Glacier. Para obtener más información sobre el comando upload-archive, consulte [upload-archive](https://docs.aws.amazon.com/cli/latest/reference/glacier/upload-archive.html) en la *Referencia de comandos de la AWS CLI *.

# Carga de un archivo en una sola operación mediante el AWS SDK para Java
<a name="uploading-an-archive-single-op-using-java"></a>

Tanto el [nivel alto como el nivel bajo](using-aws-sdk.md) que APIs proporciona Amazon SDK for Java proporcionan un método para cargar un archivo.

**Topics**
+ [Carga de un archivo mediante la API de alto nivel del AWS SDK para Java](#uploading-an-archive-single-op-high-level-using-java)
+ [Carga de un archivo en una sola operación mediante la API de bajo nivel del AWS SDK para Java](#uploading-an-archive-single-op-low-level-using-java)

## Carga de un archivo mediante la API de alto nivel del AWS SDK para Java
<a name="uploading-an-archive-single-op-high-level-using-java"></a>

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: cargar un archivo mediante la API de alto nivel del AWS SDK para Java
<a name="upload-archive-high-level-java-example"></a>

En el ejemplo de código Java siguiente, se carga un archivo a un almacén (`examplevault`) de la región Oeste de EE. UU. (Oregón) (`us-west-2`). Para obtener una lista de AWS las regiones y puntos finales compatibles, consulte. [Acceso a Amazon Glacier](amazon-glacier-accessing.md) 

Para step-by-step obtener instrucciones sobre cómo ejecutar este ejemplo, consulte[Ejecución de ejemplos de Java para Amazon Glacier con Eclipse](using-aws-sdk-for-java.md#setting-up-and-testing-sdk-java). Es necesario actualizar el código mostrado con el nombre del almacén donde se va a realizar la carga y el nombre del archivo que se va a cargar.

**Example**  

```
import java.io.File;
import java.io.IOException;
import java.util.Date;

import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.glacier.AmazonGlacierClient;
import com.amazonaws.services.glacier.transfer.ArchiveTransferManager;
import com.amazonaws.services.glacier.transfer.UploadResult;


public class ArchiveUploadHighLevel {
    public static String vaultName = "*** provide vault name ***";
    public static String archiveToUpload = "*** provide name of file to upload ***";
    
    public static AmazonGlacierClient client;
    
    public static void main(String[] args) throws IOException {
        
        
    	ProfileCredentialsProvider credentials = new ProfileCredentialsProvider();
    	
        client = new AmazonGlacierClient(credentials);
        client.setEndpoint("https://glacier.us-west-2.amazonaws.com/");

        try {
            ArchiveTransferManager atm = new ArchiveTransferManager(client, credentials);
            
            UploadResult result = atm.upload(vaultName, "my archive " + (new Date()), new File(archiveToUpload));
            System.out.println("Archive ID: " + result.getArchiveId());
            
        } catch (Exception e)
        {
            System.err.println(e);
        }
    }
}
```

## Carga de un archivo en una sola operación mediante la API de bajo nivel del AWS SDK para Java
<a name="uploading-an-archive-single-op-low-level-using-java"></a>

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 Java.

 

1. Cree una instancia de la clase `AmazonGlacierClient` (el cliente). 

   Debe especificar la AWS región en la que desea cargar el archivo. Todas las operaciones que realice con este cliente se aplican a esa AWS región. 

1. 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, la longitud del contenido de los datos 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 del AWS SDK para Java con Amazon Glacier](using-aws-sdk-for-java.md). 

1. Ejecute el método `uploadArchive` proporcionando el objeto de solicitud como parámetro. 

   En respuesta, Amazon Glacier (Amazon Glacier) devuelve el ID del archivo que acaba de cargarse. 

En el siguiente fragmento de código Java, se ilustran los pasos anteriores. 

```
AmazonGlacierClient client;

UploadArchiveRequest request = new UploadArchiveRequest()
    .withVaultName("*** provide vault name ***")
    .withChecksum(checksum)
    .withBody(new ByteArrayInputStream(body))
    .withContentLength((long)body.length);

UploadArchiveResult uploadArchiveResult = client.uploadArchive(request);

System.out.println("Location (includes ArchiveID): " + uploadArchiveResult.getLocation());
```

### Ejemplo: cargar un archivo en una sola operación mediante la API de bajo nivel del AWS SDK para Java
<a name="uploding-single-archive-using-java-example"></a>

El siguiente ejemplo de código Java utiliza el AWS SDK para Java para cargar un archivo en un almacén ()`examplevault`. Para step-by-step obtener instrucciones sobre cómo ejecutar este ejemplo, consulte[Ejecución de ejemplos de Java para Amazon Glacier con Eclipse](using-aws-sdk-for-java.md#setting-up-and-testing-sdk-java). Es necesario actualizar el código mostrado con el nombre del almacén donde se va a realizar la carga y el nombre del archivo que se va a cargar.

```
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.glacier.AmazonGlacierClient;
import com.amazonaws.services.glacier.TreeHashGenerator;
import com.amazonaws.services.glacier.model.UploadArchiveRequest;
import com.amazonaws.services.glacier.model.UploadArchiveResult;
public class ArchiveUploadLowLevel {

    public static String vaultName = "*** provide vault name ****";
    public static String archiveFilePath = "*** provide to file upload ****";
    public static AmazonGlacierClient client;
    
    public static void main(String[] args) throws IOException {
    	
    	ProfileCredentialsProvider credentials = new ProfileCredentialsProvider();

        client = new AmazonGlacierClient(credentials);
        client.setEndpoint("https://glacier.us-east-1.amazonaws.com/");

        try {
            // First open file and read.
            File file = new File(archiveFilePath);
            InputStream is = new FileInputStream(file); 
            byte[] body = new byte[(int) file.length()];
            is.read(body);
                                    
            // Send request.
            UploadArchiveRequest request = new UploadArchiveRequest()
                .withVaultName(vaultName)
                .withChecksum(TreeHashGenerator.calculateTreeHash(new File(archiveFilePath))) 
                .withBody(new ByteArrayInputStream(body))
                .withContentLength((long)body.length);
            
            UploadArchiveResult uploadArchiveResult = client.uploadArchive(request);
            
            System.out.println("ArchiveID: " + uploadArchiveResult.getArchiveId());
            
        } catch (Exception e)
        {
            System.err.println("Archive not uploaded.");
            System.err.println(e);
        }
    }
}
```

# Carga de un archivo en una sola operación mediante Amazon AWS SDK para .NET Glacier
<a name="uploading-an-archive-single-op-using-dotnet"></a>

Tanto el [nivel alto como el nivel bajo](using-aws-sdk.md) que APIs proporciona Amazon SDK para .NET proporcionan un método para cargar un archivo en una sola operación.

**Topics**
+ [Carga de un archivo mediante la API de alto nivel del AWS SDK para .NET](#uploading-an-archive-single-op-highlevel-using-dotnet)
+ [Carga de un archivo en una sola operación mediante la API de bajo nivel del AWS SDK para .NET](#uploading-an-archive-single-op-lowlevel-using-dotnet)

## Carga de un archivo mediante la API de alto nivel del AWS SDK para .NET
<a name="uploading-an-archive-single-op-highlevel-using-dotnet"></a>

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: cargar un archivo mediante la API de alto nivel del AWS SDK para .NET
<a name="upload-archive-highlevel-any-size-dotnet"></a>

En el ejemplo de código C\$1 siguiente, se carga un archivo a un almacén (`examplevault`) de la región Oeste de EE. UU. (Oregón). 

Para step-by-step obtener instrucciones sobre cómo ejecutar este ejemplo, consulte[Ejecución de los ejemplos de código](using-aws-sdk-for-dot-net.md#setting-up-and-testing-sdk-dotnet). Debe actualizar el código mostrado con el nombre del archivo que quiera cargar.

**Example**  

```
using System;
using Amazon.Glacier;
using Amazon.Glacier.Transfer;
using Amazon.Runtime;

namespace glacier.amazon.com.rproxy.govskope.us.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 sola operación mediante la API de bajo nivel del AWS SDK para .NET
<a name="uploading-an-archive-single-op-lowlevel-using-dotnet"></a>

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.

 

1. Cree una instancia de la clase `AmazonGlacierClient` (el cliente). 

   Debe especificar la AWS región en la que desea cargar el archivo. Todas las operaciones que realice con este cliente se aplican a esa AWS región. 

1. 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](using-aws-sdk-for-dot-net.md). 

1. Ejecute el método `UploadArchive` proporcionando el objeto de solicitud como parámetro. 

   En respuesta, Amazon Glacier devuelve el ID del archivo que acaba de cargarse. 

### Ejemplo: cargar un archivo en una sola operación mediante la API de bajo nivel del AWS SDK para .NET
<a name="upload-archive-single-op-lowlevel-dotnet"></a>

En el siguiente ejemplo de código C\$1, se ilustran los pasos anteriores. En el ejemplo se utiliza AWS SDK para .NET para cargar un archivo en una bóveda ()`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)](api-archive-post.md).

Para step-by-step obtener instrucciones sobre cómo ejecutar este ejemplo, consulte[Ejecución de los ejemplos de código](using-aws-sdk-for-dot-net.md#setting-up-and-testing-sdk-dotnet). Debe actualizar el código mostrado con el nombre del archivo que quiera cargar.

**Example**  

```
using System;
using System.IO;
using Amazon.Glacier;
using Amazon.Glacier.Model;
using Amazon.Runtime;

namespace glacier.amazon.com.rproxy.govskope.us.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;
      }
    }
  }
}
```

# Carga de un archivo en una única operación con la API de REST
<a name="uploading-an-archive-single-op-using-rest"></a>

Puede utilizar la llamada a la API Upload Archive para cargar un archivo en una única operación. Para obtener más información, consulte [Carga de archivo (POST archivo)](api-archive-post.md).