Travaillez avec Amazon S3 - AWS SDK for Java 2.x

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.

Travaillez avec Amazon S3

Cette section fournit des informations générales sur l'utilisation d'Amazon S3 à l'aide du AWS SDK for Java 2.x. Cette section complète les exemples Java v2 d'Amazon S3 présentés dans la section Exemples de code de ce guide.

clients S3 dans le AWS SDK for Java 2.x

AWS SDK for Java 2.x Il fournit différents types de clients S3. Le tableau suivant montre les différences et peut vous aider à déterminer ce qui convient le mieux à vos cas d'utilisation.

Différents types de clients Amazon S3
Client S3 Description abrégée Utilisation Limitation/inconvénient

AWS CRTclient S3 basé sur

Interface : S3 AsyncClient

Constructeur : S3 CrtAsyncClientBuilder

  • Fournit les mêmes API opérations asynchrones que le client asynchrone S3 basé sur Java, mais avec de meilleures performances.

  • Nécessite la aws-crt dépendance.

  • Supporte les transferts parallèles automatiques (multipart).

Consultez Utiliser un client S3 performant : client S3 AWS CRT basé sur un client S3.

  • Votre application transfère des objets volumineux (> 8 Mo) et vous souhaitez optimiser les performances.

  • Vous souhaitez télécharger des objets dont la longueur du contenu est inconnue.

  • Vous souhaitez améliorer le regroupement des connexions et l'équilibrage de DNS charge, afin d'améliorer le débit et les performances.

  • Vous souhaitez améliorer la fiabilité des transferts en cas de panne du réseau. Les pièces défectueuses individuelles sont réessayées sans recommencer le transfert depuis le début.

Client asynchrone S3 basé sur Java avec le multipart activé

Interface : S3 AsyncClient

Constructeur : S3 AsyncClientBuilder

  • Fournit un asynchroneAPI.

  • Prend en charge les transferts parallèles automatiques (multipart) lorsque vous activez le multipart au moment de la création.

Consultez Configurer le client asynchrone S3 basé sur Java pour utiliser les transferts parallèles.

  • Votre application transfère des objets volumineux et vous souhaitez améliorer les performances.

  • vous souhaitez télécharger un objet dont la longueur du contenu est inconnue.

  • Vous souhaitez améliorer la fiabilité des transferts en cas de panne du réseau. Les pièces défectueuses individuelles sont réessayées sans recommencer le transfert depuis le début.

  • Vous avez besoin d'options de configuration qui ne sont pas disponibles avec le client S3 AWS CRT basé sur S3.

Moins performant que le client S3 AWS CRT basé sur S3.

Client asynchrone S3 basé sur Java sans activation du multipart

Interface : S3 AsyncClient

Constructeur : S3 AsyncClientBuilder

  • Fournit un asynchroneAPI.

  • Vous transférez des objets dont la taille est inférieure à 8 Mo.

  • Vous voulez un asynchroneAPI.

Aucune optimisation des performances.

Client de synchronisation S3 basé sur Java

Interface : S3 Client

Constructeur : S3 ClientBuilder

  • Fournit un système synchrone. API

  • Vous transférez des objets dont la taille est inférieure à 8 Mo.

  • Tu veux un synchrone. API

Aucune optimisation des performances.

Note

À partir de la version 2.18.x, l'adressage de type hébergé virtuel est AWS SDK for Java 2.x utilisé pour inclure un remplacement du point de terminaison. Cela s'applique tant que le nom du bucket est une DNS étiquette valide.

Appelez la forcePathStyleméthode true dans votre générateur de clients pour forcer le client à utiliser un adressage de type chemin pour les buckets.

L'exemple suivant montre un client de service configuré avec un remplacement de point de terminaison et utilisant un adressage de type chemin.

S3Client client = S3Client.builder() .region(Region.US_WEST_2) .endpointOverride(URI.create("https://s3.us-west-2.amazonaws.com")) .forcePathStyle(true) .build();