Usar a AWS SDK for Java - Amazon Simple Storage Service

Usar a AWS SDK for Java

O AWS SDK for Java fornece uma API para as operações de buckets e objetos do Amazon S3. Para operações de objeto, além de fornecer a API para fazer upload de objetos em uma única operação, o SDK fornece a API para fazer upload de grandes objetos em partes. Para obter mais informações, consulte Carregar e copiar objetos usando multipart upload.

O AWS SDK for Java oferece a opção de usar uma API de alto ou baixo nível.

API de baixo nível

As APIs de baixo nível correspondem às operações REST subjacentes do Amazon S3, como operações de criação, atualização e exclusão que se aplicam a buckets e objetos. Quando você faz upload de objetos grandes usando a API de multipart upload de baixo nível, ela proporciona mais controle. Por exemplo, ela permite pausar e retomar multipart uploads, variar tamanhos de parte durante o upload ou começar uploads quando você não sabe o tamanho dos dados com antecedência. Se você não tiver esses requisitos, use a API de alto nível para fazer upload de objetos.

API de alto nível

Para fazer upload de objetos, o SDK fornece um nível superior de abstração fornecendo a classe TransferManager. A API de alto nível é uma API mais simples, na qual em apenas algumas linhas de código, você pode fazer upload de arquivos e streams no Amazon S3. Você deve usar essa API para fazer upload dos dados a menos que você precise controlar o upload conforme descrito na seção API de baixo nível anterior.

Para dados menores, a API TransferManager faz upload dos dados em uma única operação. No entanto, o TransferManager alterna para o uso da API de multipart upload quando os dados atingem um determinado limite. Quando possível, o TransferManager usa vários threads para fazer upload das partes simultaneamente. Se houver falha no upload de uma parte, a API repetirá o upload da parte até três vezes. Contudo, essas são opções configuráveis usando a classe TransferManagerConfiguration.

nota

Quando você está usando um streaming na fonte dos dados, a classe TransferManager não faz uploads simultâneos.

A organização da API Java

Os seguintes pacotes no AWS SDK for Java fornecem a API:

  • com.amazonaws.services.s3: fornece as APIs para a criação de clientes do Amazon S3 e o trabalho com buckets e objetos. Por exemplo, ele possibilita a você criar buckets, fazer upload de objetos, obter objetos, excluir objetos e listar chaves.

  • com.amazonaws.services.s3.transfer: fornece as operações de dados da API de alto nível.

    Essa API de alto nível é projetada para simplificar a transferência de objetos para o Amazon S3 e vice-versa. Ela inclui a classe TransferManager, que fornece métodos assíncronos para trabalhar com, consultar e manipular transferências. Também inclui a classe TransferManagerConfiguration que você pode usar para configurar o tamanho mínimo das partes para upload e o limite em bytes de quando usar multipart uploads.

  • com.amazonaws.services.s3.model: fornece as classes da API de baixo nível para criar solicitações e respostas a processos. Por exemplo, inclui a classe GetObjectRequest para descrever sua solicitação para obter objetos, a classe ListObjectsRequest para descrever suas solicitações para listar chaves, e a classe InitiateMultipartUploadRequest para criar multipart uploads.

Para obter mais informações sobre a API do AWS SDK for Java, consulte a Referência da API do AWS SDK for Java.

Testar exemplos de código Java no Amazon S3

Os exemplos de Java neste guia são compatíveis com o AWS SDK for Java versão 1.11.321. Para obter instruções sobre como configurar e executar exemplos de código, consulte Conceitos básicos no Guia do desenvolvedor do AWS SDK for Java.