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

Se você é novato no Amazon Simple Storage Service (Amazon S3), recomendamos que comece aprendendo mais sobre as classes de armazenamento S3 Glacier no Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive. Para obter mais informações, consulte Classes de armazenamento S3 Glacier e Classes de armazenamento para arquivamento de objetos no Guia do usuário do 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á.

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

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 Conta da AWS ID. Esse valor deve corresponder ao Conta da AWS ID 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://&awsdomain;/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.

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 (Oregon) dos EUA (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 (Oregon) dos EUA 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.