Como usar o AWS SDK for Java com o Amazon S3 Glacier - Amazon S3 Glacier

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

Se você estiver procurando soluções de armazenamento de arquivos, sugerimos usar as classes de armazenamento do S3 Glacier no 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 S3 Glacier e Noções básicas sobre as classes de armazenamento S3 Glacier para armazenamento de dados de longo prazo no Guia do usuário do Amazon S3. Essas classes de armazenamento usam a API do Amazon S3, estão disponíveis em todas as regiões e podem ser gerenciadas no console do Amazon S3. Elas oferecem análise de custos de armazenamento, Lente de Armazenamento, recursos avançados de criptografia opcionais e muito mais.

Como usar o AWS SDK for Java com o Amazon S3 Glacier

O AWS SDK for Java fornece APIs de nível superior e inferior para o Amazon S3 Glacier (S3 Glacier), conforme descrito em Como usar os AWS SDKs com o Amazon S3 Glacier. Para obter informações sobre como fazer download do AWS SDK for Java, consulte Amazon SDK para Java.

nota

O AWS SDK for Java fornece clientes thread-safe para acessar o S3 Glacier. De acordo com as melhores práticas, seus aplicativos devem criar um único cliente e reutilizá-lo entre os threads.

Usar a API de nível inferior

A classe AmazonGlacierClient de nível inferior fornece todos os métodos mapeados para as operações REST subjacentes do S3 Glacier ( Referência de API para Amazon S3 Glacier). Ao chamar qualquer um desses métodos, deve ser criado um objeto de solicitação correspondente e fornecer um objeto de resposta no qual o método possa retornar a resposta do S3 Glacier à operação.

Por exemplo, a classe AmazonGlacierClient fornece o método createVault para criar um cofre. Esse método é mapeado para a operação REST Create Vault (consulte Create Vault (PUT vault)). Para usar esse método, crie instâncias do objeto CreateVaultResult que recebe a resposta do S3 Glacier conforme mostrado no seguinte trecho de código do Java:

AmazonGlacierClient client = new AmazonGlacierClient(credentials); client.setEndpoint("https://glacier.us-west-2.amazonaws.com/"); CreateVaultRequest request = new CreateVaultRequest() .withAccountId("-") .withVaultName(vaultName); CreateVaultResult result = client.createVault(createVaultRequest);

Todos os exemplos de nível inferior no guia usam esse padrão.

nota

O segmento do código anterior especifica AccountID durante a criação da solicitação. No entanto, durante o uso do AWS SDK for Java, o AccountId na solicitação é opcional e, assim, todos os exemplos de baixo nível neste guia não definem esse valor. Esse AccountId é o ID da Conta da AWS. Esse valor deve corresponder ao ID de Conta da AWS associado às credenciais usadas para assinar a solicitação. Especifique o Conta da AWS ID ou opcionalmente um '-', nesse caso o S3 Glacier usa o Conta da AWS ID associado às credenciais usadas para assinar a solicitação. Se você especificar o ID da conta, não inclua hifens nele. Ao usar o AWS SDK for Java, se você não fornecer o ID da conta, a biblioteca definirá o ID da conta como '-'.

Usar a API de nível superior

Para simplificar ainda mais o desenvolvimento do aplicativo, o AWS SDK for Java fornece a classe ArchiveTransferManager que implementa uma abstração de alto nível para alguns dos métodos na API de baixo nível. Ele fornece métodos úteis, como os métodos upload e download, para operações de arquivo.

Por exemplo, o trecho de código do Java a seguir usa o método de nível superior upload para fazer upload de um arquivo.

String vaultName = "examplevault"; String archiveToUpload = "c:/folder/exampleArchive.zip"; ArchiveTransferManager atm = new ArchiveTransferManager(client, credentials); String archiveId = atm.upload(vaultName, "Tax 2012 documents", new File(archiveToUpload)).getArchiveId();

Todas as operações realizadas por você se aplicam à AWS região especificada ao criar o ArchiveTransferManager objeto . Se não for especificada uma região AWS, o AWS SDK for Java definirá us-east-1 como a região AWS padrão.

Todos os exemplos de nível superior neste guia usam esse padrão.

nota

A classe ArchiveTransferManager de nível superior pode ser construída com uma instância AmazonGlacierClient ou AWSCredentials.

Executar exemplos do Java para o Amazon S3 Glacier usando o Eclipse

A maneira mais fácil de começar a usar os exemplos de código Java é instalar o AWS Toolkit for Eclipse mais recente. Para obter informações sobre como instalar ou atualizar para o toolkit mais recente, vá até http://aws.amazon.com/eclipse. As tarefas a seguir orientam você em meio à criação e aos testes dos exemplos de código do Java fornecidos nesta seção.

Processo geral de criação de exemplos de código Java

1

Crie um perfil de credenciais padrão para as credenciais AWS conforme descrito no tópico AWS SDK for Java Fornecer AWS credenciais na Amazon SDK para Java.

2

Crie um novo AWS projeto Java no Eclipse. O projeto é pré-configurado com o AWS SDK for Java.

3

Copie o código da seção que você está lendo ao projeto.

4

Atualize o código fornecendo todos os dados necessários. Por exemplo, se estiver fazendo o upload de um arquivo, forneça o caminho do arquivo e o nome do bucket.

5

Execute o código. Verifique se o objeto é criado usando o AWS Management Console. Para obter mais informações sobre o AWS Management Console, acesse http://aws.amazon.com/console/.

Definição do endpoint

Por padrão, o AWS SDK for Java usa o endpoint https://glacier.us-east-1.amazonaws.com. Você pode definir o endpoint explicitamente conforme mostrado nos trechos de código do Java a seguir.

O trecho de código a seguir mostra como definir o endpoint para a região Oeste dos EUA (Oregon) (us-west-2) na API de nível inferior.

client = new AmazonGlacierClient(credentials); client.setEndpoint("glacier.us-west-2.amazonaws.com");

O trecho de código a seguir mostra como definir o endpoint para a região oeste dos EUA (Oregon) na API de nível superior.

glacierClient = new AmazonGlacierClient(credentials); sqsClient = new AmazonSQSClient(credentials); snsClient = new AmazonSNSClient(credentials); glacierClient.setEndpoint("glacier.us-west-2.amazonaws.com"); sqsClient.setEndpoint("sqs.us-west-2.amazonaws.com"); snsClient.setEndpoint("sns.us-west-2.amazonaws.com"); ArchiveTransferManager atm = new ArchiveTransferManager(glacierClient, sqsClient, snsClient);

Para obter uma lista de AWS regiões e endpoints compatíveis, consulte Acessar o Amazon S3 Glacier.