Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Modifications apportées à Amazon S3 Transfer Manager de la version 1 à la version 2
Cette rubrique détaille les modifications apportées à Amazon S3 Transfer Manager de la version 1 (v1) à la version 2 (v2).
Changements de haut niveau
Modification |
v1 |
v2 |
Dépendances de Maven
|
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-bom</artifactId>
<version>1.12.6911 </version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
</dependency>
</dependencies>
|
<dependencyManagement>
<dependencies>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>bom</artifactId>
<version>2.27.212 </version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3-transfer-manager</artifactId>
</dependency>
// Add the following if using the
// AWS CRT-based S3 client.
<dependency>
<groupId>software.amazon.awssdk.crt</groupId>
<artifactId>aws-crt</artifactId>
<version>0.29.143 </version>
</dependency>
</dependencies>
|
Nom du package |
com.amazonaws.services.s3.transfer |
software.amazon.awssdk.transfer.s3 |
Nom de classe |
TransferManager
|
S3TransferManager
|
1 Dernière version. 2 Dernière version. 3 Dernière version.
Configuration changes
Les modifications de configuration que vous devez définir pour le gestionnaire de transfert v2 dépendent du client S3 que vous utilisez. Vous avez le choix entre le client S3 AWS CRT basé sur le langage Java ou le client asynchrone S3 standard basé sur Java. Pour plus d'informations sur les différences, consultez la clients S3 dans le AWS SDK for Java 2.x rubrique.
- Use the AWS CRT-based S3 client
-
Paramètre |
v1 |
v2 - Gestionnaire de transfert utilisant AWS CRT un client S3 basé |
(trouvez un constructeur)
|
TransferManagerBuilder tmBuilder =
TransferManagerBuilder.standard();
|
S3TransferManager.Builder tmBuilder =
S3TransferManager.builder();
|
Client S3
|
tmBuilder.withS3Client(...);
tmBuilder.setS3Client(...);
|
tmBuilder.s3Client(...);
|
Exécuteur
|
tmBuilder.withExecutorFactory(...);
tmBuilder.setExecutorFactory(...);
|
tmBuilder.executor(...);
|
Arrêter les pools de threads
|
tmBuilder.withShutDownThreadPools(...);
tmBuilder.setShutdownThreadPools(...);
|
Non pris en charge. L'exécuteur fourni ne sera pas arrêté à la fermeture du S3TransferManager |
Taille minimale de la pièce à télécharger
|
tmBuilder.withMinimumUploadPartSize(...);
tmBuilder.setMinimumUploadPartSize(...);
|
S3AsyncClient s3 = S3AsyncClient.crtBuilder().
minimumPartSizeInBytes(...).build();
tmBuilder.s3Client(s3);
|
Seuil de téléchargement en plusieurs parties
|
tmBuilder.withMinimumUploadPartSize(...);
tmBuilder.setMinimumUploadPartSize(...);
|
S3AsyncClient s3 = S3AsyncClient.crtBuilder().
thresholdInBytes(...).build();
tmBuilder.s3Client(s3);
|
Taille minimale des parties de copie
|
tmBuilder.withMinimumUploadPartSize(...);
tmBuilder.setMinimumUploadPartSize(...);
|
S3AsyncClient s3 = S3AsyncClient.crtBuilder().
minimumPartSizeInBytes(...).build();
tmBuilder.s3Client(s3);
|
Seuil de copie en plusieurs parties
|
tmBuilder.withMinimumUploadPartSize(...);
tmBuilder.setMinimumUploadPartSize(...);
|
S3AsyncClient s3 = S3AsyncClient.crtBuilder().
thresholdInBytes(...).build();
tmBuilder.s3Client(s3);
|
Désactiver les téléchargements parallèles
|
tmBuilder.withDisableParallelDownloads(...);
tmBuilder.setDisableParallelDownloads(...);
|
Désactivez les téléchargements parallèles en transmettant au gestionnaire de transfert un client S3 standard basé sur Java avec le mode multipartie désactivé (par défaut).S3AsyncClient s3 =
S3AsyncClient.builder().build();
tmBuilder.s3Client(s3);
|
Calculez toujours le md5 en plusieurs parties
|
tmBuilder.withAlwaysCalculateMultipartMd5(...);
tmBuilder.setAlwaysCalculateMultipartMd5(...);
|
Non pris en charge. |
- Use Java-based S3 async client
-
Paramètre |
v1 |
v2 - Gestionnaire de transfert utilisant un client asynchrone S3 basé sur Java |
(trouvez un constructeur)
|
TransferManagerBuilder tmBuilder =
TransferManagerBuilder.standard();
|
S3TransferManager.Builder tmBuilder =
S3TransferManager.builder();
|
Client S3
|
tmBuilder.withS3Client(...);
tmBuilder.setS3Client(...);
|
tmBuilder.s3Client(...);
|
Exécuteur
|
tmBuilder.withExecutorFactory(...);
tmBuilder.setExecutorFactory(...);
|
tmBuilder.executor(...);
|
Arrêter les pools de threads
|
tmBuilder.withShutDownThreadPools(...);
tmBuilder.setShutdownThreadPools(...);
|
Non pris en charge. L'exécuteur fourni ne sera pas arrêté à la fermeture du S3TransferManager |
Taille minimale de la pièce à télécharger
|
tmBuilder.withMinimumUploadPartSize(...);
tmBuilder.setMinimumUploadPartSize(...);
|
S3AsyncClient s3 = S3AsyncClient.builder()
.multipartConfiguration(cfg ->
cfg.minimumPartSizeInBytes(...)).build();
tmBuilder.s3Client(s3);
|
Seuil de téléchargement en plusieurs parties
|
tmBuilder.withMinimumUploadPartSize(...);
tmBuilder.setMinimumUploadPartSize(...);
|
S3AsyncClient s3 = S3AsyncClient.builder()
.multipartConfiguration(cfg ->
cfg.thresholdInBytes(...)).build();
tmBuilder.s3Client(s3);
|
Taille minimale des parties de copie
|
tmBuilder.withMinimumUploadPartSize(...);
tmBuilder.setMinimumUploadPartSize(...);
|
S3AsyncClient s3 = S3AsyncClient.builder()
.multipartConfiguration(cfg ->
cfg.minimumPartSizeInBytes(...)).build();
tmBuilder.s3Client(s3);
|
Seuil de copie en plusieurs parties
|
tmBuilder.withMinimumUploadPartSize(...);
tmBuilder.setMinimumUploadPartSize(...);
|
S3AsyncClient s3 = S3AsyncClient.builder()
.multipartConfiguration(cfg ->
cfg.thresholdInBytes(...)).build();
tmBuilder.s3Client(s3);
|
Désactiver les téléchargements parallèles
|
tmBuilder.withDisableParallelDownloads(...);
tmBuilder.setDisableParallelDownloads(...);
|
Désactivez les téléchargements parallèles en transmettant au gestionnaire de transfert un client S3 standard basé sur Java avec le mode multipartie désactivé (par défaut).S3AsyncClient s3 =
S3AsyncClient.builder().build();
tmBuilder.s3Client(s3);
|
Calculez toujours le md5 en plusieurs parties
|
tmBuilder.withAlwaysCalculateMultipartMd5(...);
tmBuilder.setAlwaysCalculateMultipartMd5(...);
|
Non pris en charge. |
Changements de comportement
Exigences en matière de transfert parallèle
Dans la version 2.x SDK pour Java, la fonctionnalité de transfert parallèle automatique (chargement/téléchargement en plusieurs parties) est disponible via le client S3 basé sur Java et le client asynchrone S3 AWS CRT basé sur Java. Pour utiliser le client S3 AWS CRT basé sur le système, vous devez ajouter explicitement la dépendance à la bibliothèque AWS
Common Runtime (CRT) afin d'optimiser les performances. Pour utiliser le client asynchrone S3 basé sur Java avec le multipart activé, vous devez utiliser la version at SDK 2.25.X <TODO>
ou supérieur.
Le client S3 AWS CRT basé à lui seul, sans utilisation, S3TransferManager
permet d'optimiser les performances des transferts parallèles. S3TransferManager
La v2 fournit des APIs fonctionnalités supplémentaires qui facilitent le transfert de fichiers et de répertoires.
Téléchargement parallèle via des extractions par plage d'octets
Lorsque la fonction de transfert parallèle automatique est activée, le S3 Transfer Manager v2 utilise des extractions par plage d'octets pour récupérer des parties spécifiques de l'objet en parallèle (téléchargement en plusieurs parties). La façon dont un objet est téléchargé avec la version v2 ne dépend pas de la manière dont l'objet a été initialement chargé. Tous les téléchargements peuvent bénéficier d'un débit élevé et d'une simultanéité.
En revanche, avec S3 Transfer Manager v1, la manière dont l'objet a été initialement chargé est importante. Le S3 Transfer Manager v1 récupère les parties de l'objet de la même manière que les parties ont été téléchargées. Si un objet a été initialement chargé en tant qu'objet unique, le S3 Transfer Manager v1 n'est pas en mesure d'accélérer le processus de téléchargement en utilisant des sous-requêtes.
Comportement de défaillance
Avec S3 Transfer Manager v1, une demande de transfert de répertoire échoue si une sous-demande échoue. Contrairement à la v1, le futur renvoyé par S3 Transfer Manager v2 se termine avec succès même si certaines sous-requêtes échouent.
Par conséquent, vous devez vérifier l'absence d'erreurs dans la réponse en utilisant la CompletedDirectoryDownload.failedTransfers()
méthode ou CompletedDirectoryUpload.failedTransfers()
la méthode, même si le futur se termine avec succès.