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á.
Alterações do Gerenciador de transferência do Amazon S3 da versão 1 para a versão 2
Este tópico detalha as alterações no Gerenciador de transferência do Amazon S3 da versão 1 (v1) para a versão 2 (v2).
Alterações de alto nível
Alteração | v1 | v2 |
---|---|---|
Dependências do Maven |
|
|
Nome do pacote | com.amazonaws.services.s3.transfer |
software.amazon.awssdk.transfer.s3 |
Nome da classe |
1 Versão mais recente
Alterações da API de configuração
Configuração | v1 | v2 |
---|---|---|
(obtenha um construtor) |
|
|
Cliente do S3 |
|
|
Executor |
|
|
Encerrar grupos de threads |
|
Sem suporte. O executor fornecido não será desligado quando o S3 TransferManager for fechado |
Tamanho mínimo da parte de upload |
|
|
Limite de multipart upload |
|
|
Tamanho mínimo da parte de cópia |
|
|
Limite de cópia de multipart |
|
|
Desabilitar downloads paralelos |
|
Desabilite os downloads paralelos passando um cliente S3 padrão baseado em Java para o gerenciador de transferência.
|
Sempre calcule o multipart md5 |
|
Sem suporte. |
Alteração de comportamento
A transferência paralela requer um cliente AWS S3 baseado em CRT
No SDK para Java 2.x, o recurso de transferência paralela automática (multipart upload/download) está disponível por meio do cliente do S3 baseado em AWS CRT. Para ativar o recurso de transferência paralela, você deve adicionar explicitamente a dependência da biblioteca de Common Runtime (CRT - Tempo de execução comum) da AWS
O cliente S3 AWS baseado em CRT sozinho, sem usar, fornece desempenho maximizado de transferências S3TransferManager
paralelas. S3TransferManager
A v2 fornece APIs adicionais que facilitam a transferência de arquivos e diretórios.
A capacidade de S3TransferManager
realizar transferências paralelas depende de como ela S3TransferManager
é iniciada e se a biblioteca AWS Common Runtime (CRT) foi declarada como uma dependência.
A tabela a seguir descreve três cenários de inicialização para uma S3TransferManager
v2 com e sem a AWS CRT declarada como dependência.
Abordagem de inicialização do S3 TransferManager v2 | O AWS CRT é declarado como uma dependência? | |
---|---|---|
sim | não | |
Inicializar o Método de criação estático:
- OU - Método do criador:
|
transferência paralela automática habilitada |
transferência paralela automática desabilitada |
Transmitir uma instância
- OU -
|
transferência paralela automática habilitada |
erro de runtime |
Transmitir uma instância
- OU -
|
transferência paralela automática desabilitada |
transferência paralela automática desabilitada |
Download paralelo por meio de buscas de intervalo de bytes
Quando o recurso de transferência paralela automática está ativado, o Gerenciador de transferência do S3 v2 usa buscas de intervalo de bytes para recuperar partes específicas do objeto em paralelo (download multipart). A forma como um objeto é baixado com a v2 não depende de como o objeto foi originalmente carregado. Todos os downloads podem se beneficiar da alta taxa de transferência e da simultaneidade.
Por outro lado, com o Gerenciador de transferência do S3 v1, faz diferença como o objeto foi originalmente carregado. O Gerenciador de transferência do S3 v1 recupera as partes do objeto da mesma forma que as partes foram carregadas. Se um objeto foi originalmente carregado como um único objeto, o Gerenciador de transferência do S3 v1 não é capaz de acelerar o processo de download usando subsolicitações.
Comportamento com falha
Com o Gerenciador de transferência do S3 v1, uma solicitação de transferência de diretório falha se alguma subsolicitação falhar. Diferentemente da v1, o futuro retornado do Gerenciador de transferência do S3 v2 é concluído com êxito mesmo se algumas subsolicitações falharem.
Como resultado, você deve verificar se há erros na resposta usando o método CompletedDirectoryDownload.failedTransfers()
CompletedDirectoryUpload.failedTransfers()