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
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.
Tópicos
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
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.