Utilisation des points de terminaison Dual-Stack Amazon S3 - Amazon Simple Storage Service

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.

Utilisation des points de terminaison Dual-Stack Amazon S3

Les points de terminaison à double pile Amazon S3 prennent en charge les demandes envoyées aux compartiments S3 via IPv6 et IPv4. Cette section décrit comment utiliser les points de terminaison Dual-Stack (double pile).

Points de terminaison Amazon S3 Dual-Stack

Lorsque vous envoyez une demande à un point de terminaison Dual-Stack, l'URL du compartiment est résolue en une adresse IPv6 ou IPv4. Pour plus d’informations sur l’accès à un compartiment via IPv6, consultez Envoi de demandes à Amazon S3 via IPv6.

Lorsque vous utilisez l'API REST, vous accédez directement à un point de terminaison Amazon S3 à l'aide du nom de point de terminaison (URI). Vous pouvez accéder à un compartiment S3 via un point de terminaison Dual-Stack en utilisant un nom de point de terminaison de type hébergement virtuel ou chemin. Amazon S3 prend uniquement en charge les noms de points de terminaison Dual-Stack Régionaux ; vous devez donc spécifier la Région dans le nom.

Utilisez les conventions de dénomination suivantes pour les points de terminaison Dual-Stack de type hébergement virtuel ou chemin :

  • Point de terminaison Dual-Stack de type hébergement virtuel :

    nom_compartiment.s3.dualstack.Région_aws.amazonaws.com

     

  • Point de terminaison Dual-Stack de type chemin :

    s3.dualstack.Région_aws.amazonaws.com/nom_compartiment

Pour plus d’informations sur le style des noms de points de terminaison, consultez Accès à un compartiment Amazon S3 et liste des compartiments. Pour obtenir la liste des points de terminaison Amazon S3, consultez Régions et points de terminaison dans la Références générales AWS.

Important

Vous pouvez utiliser Transfer Acceleration avec les points de terminaison double pile (« Dual-Stack »). Pour plus d’informations, consultez Mise en route d'Amazon S3 Transfer Acceleration.

Note

Les deux types de points de terminaison de VPC permettant d’accéder à Amazon S3 (points de terminaison de VPC d’interface et points de terminaison de VPC de passerelle) ne prennent pas en charge le mode double pile. Pour plus d’informations sur les points de terminaison de VPC pour Amazon S3, consultez AWS PrivateLink pour Amazon S3.

Lorsque vous utilisez l'AWS Command Line Interface (AWS CLI) et les kits SDK AWS, vous pouvez utiliser un paramètre ou un indicateur pour passer à un point de terminaison Dual-Stack. Vous pouvez également spécifier directement le point de terminaison Dual-Stack en remplaçant le point de terminaison Amazon S3 dans le fichier de configuration. Les sections suivantes expliquent comment utiliser les points de terminaison Dual-Stack à partir de la AWS CLI et des kits SDK AWS.

Utilisation de points de terminaison Dual-Stack avec l AWS CLI

Cette section fournit des exemples de commandes d'AWS CLI permettant d'envoyer des demandes à un point de terminaison Dual-Stack. Pour savoir comment configurer l'AWS CLI, consultez Développement avec Amazon S3 à l'aide de la AWS CLI.

Vous définissez la valeur de configuration use_dualstack_endpoint sur true dans un profil de votre fichier AWS Config pour diriger toutes les demandes Amazon S3 envoyées par s3 et les commandes s3api de la AWS CLI vers le point de terminaison Dual-Stack de la Région spécifiée. Vous indiquez la Région dans le fichier de configuration ou dans une commande à l'aide de l'option --region.

Lorsque vous utilisez des points de terminaison Dual-Stack à l'aide de l'AWS CLI, les types d'adressage path et virtual sont tous deux pris en charge. Le type d'adressage défini dans le fichier de configuration vérifie que le nom du compartiment se trouve bien dans le nom d'hôte ou fait partie de l'URL. Par défaut, l'interface de ligne de commande tente, si possible, d'utiliser le style virtuel, mais revient au type chemin si nécessaire. Pour plus d’informations, consultez Configuration de la AWS CLI d’Amazon S3.

Vous pouvez également modifier la configuration à l'aide d'une commande, comme indiqué dans l'exemple ci-dessous, qui définit use_dualstack_endpoint sur true et addressing_style sur virtual dans le profil par défaut.

$ aws configure set default.s3.use_dualstack_endpoint true $ aws configure set default.s3.addressing_style virtual

Si vous souhaitez utiliser un point de terminaison Dual-Stack uniquement pour certaines commandes d'AWS CLI (et non pour toutes les commandes), vous pouvez utiliser l'une des méthodes suivantes :

  • Vous pouvez utiliser le point de terminaison Dual-Stack par commande en définissant le paramètre --endpoint-url sur https://s3.dualstack.aws-region.amazonaws.com ou sur http://s3.dualstack.aws-region.amazonaws.com pour toute commande s3 ou s3api.

    $ aws s3api list-objects --bucket bucketname --endpoint-url https://s3.dualstack.aws-region.amazonaws.com
  • Vous pouvez configurer des profils distincts dans votre fichier AWS Config. Par exemple, vous pouvez créer un profil qui définit use_dualstack_endpoint sur true et un profil qui ne définit pas use_dualstack_endpoint. Lorsque vous exécutez une commande, spécifiez le profil adéquat selon que vous comptez utiliser ou non le point de terminaison Dual-Stack.

Note

Lorsque vous utilisez la AWS CLI, vous ne pouvez pas utiliser l'accélération du transfert avec les points de terminaison double pile. Cependant, la prise en charge de la AWS CLI sera bientôt disponible. Pour plus d’informations, consultez À l'aide du AWS CLI.

Utilisation de points de terminaison Dual-Stack avec les kits SDK AWS

Cette section fournit des exemples d'accès à un point de terminaison Dual-Stack à l'aide de kits SDK AWS.

AWS SDK for JavaExemple de point de terminaison Dual-Stack (double pile) avec le kit

L'exemple suivant montre comment activer les points de terminaison Dual-Stack lors de la création d'un client Amazon S3 à l'aide du kit AWS SDK for Java.

Pour obtenir des instructions sur la création et le test d'un exemple Java fonctionnel, consultez Test des exemples de code Java Amazon S3.

import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; public class DualStackEndpoints { public static void main(String[] args) { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; try { // Create an Amazon S3 client with dual-stack endpoints enabled. AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withCredentials(new ProfileCredentialsProvider()) .withRegion(clientRegion) .withDualstackEnabled(true) .build(); s3Client.listObjects(bucketName); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }

Si vous utilisez le kit AWS SDK for Java sous Windows, il se peut que vous ayez à définir la propriété de machine virtuelle Java (JVM) suivante :

java.net.preferIPv6Addresses=true

AWSExemple d'accès à un point de terminaison Dual-Stack avec un kit SDK .NET

Lorsque vous utilisez le kit SDK AWS pour .NET, vous utilisez la classe AmazonS3Config pour pouvoir utiliser un point de terminaison Dual-Stack, comme indiqué dans l'exemple ci-dessous.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class DualStackEndpointTest { private const string bucketName = "*** bucket name ***"; // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 client; public static void Main() { var config = new AmazonS3Config { UseDualstackEndpoint = true, RegionEndpoint = bucketRegion }; client = new AmazonS3Client(config); Console.WriteLine("Listing objects stored in a bucket"); ListingObjectsAsync().Wait(); } private static async Task ListingObjectsAsync() { try { var request = new ListObjectsV2Request { BucketName = bucketName, MaxKeys = 10 }; ListObjectsV2Response response; do { response = await client.ListObjectsV2Async(request); // Process the response. foreach (S3Object entry in response.S3Objects) { Console.WriteLine("key = {0} size = {1}", entry.Key, entry.Size); } Console.WriteLine("Next Continuation Token: {0}", response.NextContinuationToken); request.ContinuationToken = response.NextContinuationToken; } while (response.IsTruncated == true); } catch (AmazonS3Exception amazonS3Exception) { Console.WriteLine("An AmazonS3Exception was thrown. Exception: " + amazonS3Exception.ToString()); } catch (Exception e) { Console.WriteLine("Exception: " + e.ToString()); } } } }

Pour obtenir un exemple complet de listes d'objets avec .NET, consultez la section Liste des clés d'objet par programme.

Pour obtenir des informations sur la création et le test d'un exemple pratique avec .NET, consultez Exécution des exemples de code .NET Amazon S3.

Utilisation de points de terminaison Dual-Stack avec l'API REST

Pour obtenir des informations sur la procédure permettant d'envoyer des demandes à des points de terminaison Dual-Stack à l'aide de l'API REST, consultez la section Envoi de demandes à des points de terminaison Dual-Stack à l'aide de l'API REST.