

 **Esta página destina-se somente a clientes atuais do serviço Amazon Glacier que usam cofres e a API REST original de 2012.**

Se você estiver procurando soluções de armazenamento de arquivos do Amazon Glacier, recomendamos usar as classes de armazenamento do 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 do Amazon Glacier](https://aws.amazon.com/s3/storage-classes/glacier/).

O Amazon Glacier (serviço autônomo original baseado em cofre) não está mais aceitando novos clientes. O Amazon Glacier é um serviço independente APIs que armazena dados em cofres e é diferente das classes de armazenamento Amazon S3 e Amazon S3 Glacier. Seus dados existentes permanecerão seguros e acessíveis no Amazon Glacier indefinidamente. Nenhuma migração é necessária. Para armazenamento de arquivamento de baixo custo e longo prazo, AWS recomenda as classes de armazenamento [Amazon S3 Glacier](https://aws.amazon.com/s3/storage-classes/glacier/), que oferecem uma experiência superior ao cliente com APIs base em buckets S3, disponibilidade Região da AWS total, custos mais baixos e integração de serviços. AWS Se você quiser recursos aprimorados, considere migrar para as classes de armazenamento do Amazon S3 Glacier usando nossas [Orientações de soluções da AWS para transferir dados dos cofres do Amazon Glacier para as classes de armazenamento do Amazon S3 Glacier](https://aws.amazon.com/solutions/guidance/data-transfer-from-amazon-s3-glacier-vaults-to-amazon-s3/).

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 upload de um arquivo em uma única operação
<a name="uploading-archive-single-operation"></a>

Conforme descrito em [Carregar um arquivo no Amazon Glacier](uploading-an-archive.md), você pode fazer upload de arquivos menores em uma única operação. No entanto, recomendamos que os clientes do Amazon Glacier usem Upload Multiparte para fazer upload de arquivos maiores que 100 MB. 

**Topics**
+ [Carregando um arquivo em uma única operação usando o AWS Command Line Interface](uploading-an-archive-single-op-using-cli.md)
+ [Carregando um arquivamento em uma única operação usando o AWS SDK para Java](uploading-an-archive-single-op-using-java.md)
+ [Carregando um arquivo em uma única operação usando o AWS SDK para .NET no Amazon Glacier](uploading-an-archive-single-op-using-dotnet.md)
+ [Fazer upload de um arquivo em uma única operação usando a API REST](uploading-an-archive-single-op-using-rest.md)

# Carregando um arquivo em uma única operação usando o AWS Command Line Interface
<a name="uploading-an-archive-single-op-using-cli"></a>

Você pode fazer upload de um arquivo no Amazon Glacier (Amazon Glacier) usando AWS Command Line Interface o ().AWS CLI

**Topics**
+ [(Pré-requisito) Configurando o AWS CLI](#Creating-Vaults-CLI-Setup)
+ [Exemplo: Carregar um arquivo usando o AWS CLI](#Uploading-Archives-CLI-Implementation)

## (Pré-requisito) Configurando o AWS CLI
<a name="Creating-Vaults-CLI-Setup"></a>

1. Faça download e configure a AWS CLI. Para obter instruções, consulte os seguintes tópicos no *Guia do usuário do AWS Command Line Interface *: 

    [Instalando o AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) 

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

1. Verifique sua AWS CLI configuração inserindo os seguintes comandos no prompt de comando. Esses comandos não fornecem as credenciais explicitamente, de modo que as credenciais do perfil padrão são usadas.
   + Tente usar o comando de ajuda.

     ```
     aws help
     ```
   + Para obter uma lista dos cofres do Amazon Glacier na conta configurada, use o comando `list-vaults`. *123456789012*Substitua pelo seu Conta da AWS ID.

     ```
     aws glacier list-vaults --account-id 123456789012
     ```
   + Para ver os dados de configuração atuais do AWS CLI, use o `aws configure list` comando.

     ```
     aws configure list
     ```

## Exemplo: Carregar um arquivo usando o AWS CLI
<a name="Uploading-Archives-CLI-Implementation"></a>

Para fazer o upload de um arquivo, você deve ter um cofre criado. Para obter mais informações sobre a criação de cofres, consulte [Criar um cofre no Amazon Glacier](creating-vaults.md).

1. Use o comando `upload-archive` para adicionar um arquivo a um cofre existente. No exemplo abaixo, substitua `vault name` e `account ID`. Para o parâmetro `body`, especifique um caminho para o arquivo que você deseja carregar.

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

1.  Saída esperada:

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

   Quando concluído, o comando exibirá o ID do arquivo, a soma de verificação e a localização no Amazon Glacier. Para obter mais informações sobre o comando upload-arquivo, consulte [upload-arquivo](https://docs.aws.amazon.com/cli/latest/reference/glacier/upload-archive.html) na *Referência de comandos da AWS CLI *.

# Carregando um arquivamento em uma única operação usando o AWS SDK para Java
<a name="uploading-an-archive-single-op-using-java"></a>

Tanto o [alto quanto o baixo nível APIs](using-aws-sdk.md) fornecidos pelo Amazon SDK for Java fornecem um método para carregar um arquivo.

**Topics**
+ [Fazendo o upload de um arquivo usando a API de alto nível do AWS SDK para Java](#uploading-an-archive-single-op-high-level-using-java)
+ [Carregando um arquivo em uma única operação usando a API de baixo nível do AWS SDK para Java](#uploading-an-archive-single-op-low-level-using-java)

## Fazendo o upload de um arquivo usando a API de alto nível do AWS SDK para Java
<a name="uploading-an-archive-single-op-high-level-using-java"></a>

A classe `ArchiveTransferManager` da API de nível superior fornece o método `upload`, que você pode usar para fazer upload de um arquivo em um cofre.

 

**nota**  
Você pode usar o método `upload` para fazer upload de arquivos grandes ou pequenos. Dependendo do tamanho do arquivo que você estiver fazendo upload, esse método determina se é necessário fazer upload dele em uma única operação ou usar a multipart upload API para fazer upload do arquivo em partes.

### Exemplo: fazer o upload de um arquivo usando a API de alto nível do AWS SDK para Java
<a name="upload-archive-high-level-java-example"></a>

O exemplo de código Java a seguir faz upload de um arquivo em um cofre (`examplevault`) na Região (`us-west-2`) Oeste dos EUA (Oregon). Para obter uma lista de AWS regiões e endpoints compatíveis, consulte[Acessar o Amazon Glacier](amazon-glacier-accessing.md). 

Para step-by-step obter instruções sobre como executar esse exemplo, consulte[Executar exemplos do Java para o Amazon Glacier usando o Eclipse](using-aws-sdk-for-java.md#setting-up-and-testing-sdk-java). É preciso atualizar o código conforme mostrado com o nome do cofre cujo upload você deseja fazer e o nome do arquivo cujo upload quer fazer.

**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);
        }
    }
}
```

## Carregando um arquivo em uma única operação usando a API de baixo nível do AWS SDK para Java
<a name="uploading-an-archive-single-op-low-level-using-java"></a>

A API de nível inferior fornece métodos para todas as operações de arquivo. Veja a seguir as etapas para carregar um arquivo usando o AWS SDK para Java.

 

1. Crie uma instância da classe `AmazonGlacierClient` (o cliente). 

   Você precisa especificar uma AWS região na qual deseja fazer o upload do arquivo. Todas as operações que você executa usando esse cliente se aplicam a essa AWS região. 

1. Forneça informações sobre a solicitação criando uma instância da classe `UploadArchiveRequest`.

   Além dos dados cujo upload deseja fazer, você precisa fornecer uma soma de verificação (hash de árvore SHA-256) da carga útil, o nome do cofre, o tamanho do conteúdo dos dados e o ID da conta. 

   Se você não fornecer um ID da conta, o ID da conta associado às credenciais fornecidas por você para assinar a solicitação será pressuposto. Para obter mais informações, consulte [Usando o AWS SDK para Java com o Amazon Glacier](using-aws-sdk-for-java.md). 

1. Execute o método `uploadArchive` fornecendo o objeto de solicitação como um parâmetro. 

   Em resposta, o Amazon Glacier retorna um ID do arquivo recém-carregado. 

O trecho de código Java a seguir ilustra as etapas 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());
```

### Exemplo: fazer upload de um arquivo em uma única operação usando a API de baixo nível do AWS SDK para Java
<a name="uploding-single-archive-using-java-example"></a>

O exemplo de código Java a seguir usa o AWS SDK para Java para carregar um arquivo em um vault (`examplevault`). Para step-by-step obter instruções sobre como executar esse exemplo, consulte[Executar exemplos do Java para o Amazon Glacier usando o Eclipse](using-aws-sdk-for-java.md#setting-up-and-testing-sdk-java). É preciso atualizar o código conforme mostrado com o nome do cofre cujo upload você deseja fazer e o nome do arquivo cujo upload quer fazer.

```
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);
        }
    }
}
```

# Carregando um arquivo em uma única operação usando o AWS SDK para .NET no Amazon Glacier
<a name="uploading-an-archive-single-op-using-dotnet"></a>

Tanto o [alto quanto o baixo nível APIs](using-aws-sdk.md) fornecidos pelo Amazon SDK para .NET fornecem um método para carregar um arquivo em uma única operação.

**Topics**
+ [Fazendo o upload de um arquivo usando a API de alto nível do AWS SDK para .NET](#uploading-an-archive-single-op-highlevel-using-dotnet)
+ [Carregando um arquivo em uma única operação usando a API de baixo nível do AWS SDK para .NET](#uploading-an-archive-single-op-lowlevel-using-dotnet)

## Fazendo o upload de um arquivo usando a API de alto nível do AWS SDK para .NET
<a name="uploading-an-archive-single-op-highlevel-using-dotnet"></a>

A classe `ArchiveTransferManager` da API de nível superior fornece o método `Upload` que você pode usar para fazer upload de um arquivo em um cofre. 

**nota**  
Você pode usar o método `Upload` para fazer upload de arquivos pequenos ou grandes. Dependendo do tamanho do arquivo que você estiver fazendo upload, esse método determina se é necessário fazer upload dele em uma única operação ou usar a API de multipart upload para fazer upload do arquivo em partes.

### Exemplo: fazer upload de um arquivo usando a API de alto nível do AWS SDK para .NET
<a name="upload-archive-highlevel-any-size-dotnet"></a>

O exemplo de código C\$1 a seguir faz upload de um arquivo em um cofre (`examplevault`) na Região Oeste dos EUA (Oregon). 

Para step-by-step obter instruções sobre como executar esse exemplo, consulte[Executar exemplos de código](using-aws-sdk-for-dot-net.md#setting-up-and-testing-sdk-dotnet). É preciso atualizar o código conforme mostrado com o nome do arquivo cujo upload deseja fazer.

**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();
    }
  }
}
```

## Carregando um arquivo em uma única operação usando a API de baixo nível do AWS SDK para .NET
<a name="uploading-an-archive-single-op-lowlevel-using-dotnet"></a>

A API de nível inferior fornece métodos para todas as operações de arquivo. Veja a seguir as etapas para carregar um arquivo usando o AWS SDK para .NET.

 

1. Crie uma instância da classe `AmazonGlacierClient` (o cliente). 

   Você precisa especificar uma AWS região na qual deseja fazer o upload do arquivo. Todas as operações que você executa usando esse cliente se aplicam a essa AWS região. 

1. Forneça informações sobre a solicitação criando uma instância da classe `UploadArchiveRequest`.

   Além dos dados cujo upload deseja fazer, você precisa fornecer uma soma de verificação (hash de árvore SHA-256) da carga útil, o nome do cofre e o ID da conta. 

   Se você não fornecer um ID da conta, o ID da conta associado às credenciais fornecidas por você para assinar a solicitação será pressuposto. Para obter mais informações, consulte [Como usar o AWS SDK para .NET com o Amazon Glacier](using-aws-sdk-for-dot-net.md). 

1. Execute o método `UploadArchive` fornecendo o objeto de solicitação como um parâmetro. 

   Em resposta, o Amazon Glacier retorna um ID do arquivo recém-carregado. 

### Exemplo: fazer upload de um arquivo em uma única operação usando a API de baixo nível do AWS SDK para .NET
<a name="upload-archive-single-op-lowlevel-dotnet"></a>

O exemplo de código do C\$1 a seguir ilustra as etapas anteriores. O exemplo usa o AWS SDK para .NET para carregar um arquivo em um cofre (`examplevault`). 

**nota**  
Para obter informações sobre a API REST subjacente para fazer upload de um arquivo em uma única solicitação, consulte [Upload Archive (POST archive)](api-archive-post.md).

Para step-by-step obter instruções sobre como executar esse exemplo, consulte[Executar exemplos de código](using-aws-sdk-for-dot-net.md#setting-up-and-testing-sdk-dotnet). É preciso atualizar o código conforme mostrado com o nome do arquivo cujo upload deseja fazer.

**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;
      }
    }
  }
}
```

# Fazer upload de um arquivo em uma única operação usando a API REST
<a name="uploading-an-archive-single-op-using-rest"></a>

Você pode usar a chamada de API Upload Archive para fazer upload de um arquivo em uma única operação. Para obter mais informações, consulte [Upload Archive (POST archive)](api-archive-post.md).