

 **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á.

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