

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