Activation et utilisation de S3 Transfer Acceleration - Amazon Simple Storage Service

Activation et utilisation de S3 Transfer Acceleration

Vous pouvez utiliser Amazon S3 Transfer Acceleration pour transférer rapidement et en toute sécurité des fichiers sur de longues distances entre votre client et un compartiment à usage général S3. Vous pouvez activer Transfer Acceleration à l’aide de la console S3, de l’AWS Command Line Interface (AWS CLI), de l’API ou des kits AWS SDK.

Cette section propose des exemples d’activation d’Amazon S3 Transfer Acceleration sur un compartiment et d’utilisation du point de terminaison d’accélération pour le compartiment activé.

Pour en savoir plus sur les exigences de Transfer Acceleration, consultez Configuration de transferts de fichiers rapides et sécurisés à l’aide d’Amazon S3 Transfer Acceleration.

Note

Si vous souhaitez comparer les vitesses de chargement accéléré et non accéléré, ouvrez l’Outil de comparaison de la vitesse d’Amazon S3 Transfer Acceleration.

L’outil de comparaison de la vitesse utilise le chargement partitionné pour transférer un fichier à partir de votre navigateur vers différentes Régions AWS avec ou sans Amazon S3 Transfer Acceleration. Vous pouvez comparer la vitesse de téléchargement des téléchargements directs et transférer des téléchargements accélérés par Région.

Pour activer Transfer Acceleration pour un compartiment à usage général S3
  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon S3 à l’adresse https://console.aws.amazon.com/s3/.

  2. Dans le volet de navigation de gauche, choisissez Compartiments à usage général.

  3. Dans la liste Compartiments à usage général, choisissez le nom du compartiment pour lequel vous souhaitez activer Transfer Acceleration.

  4. Choisissez Propriétés.

  5. Sous Transfer acceleration (Accélération du transfert), choisissez Edit (Modifier).

  6. Sélectionnez Activer, puis Enregistrer les modifications.

Pour accéder à des transferts de données accélérés
  1. Une fois qu’Amazon S3 active l’accélération du transfert pour votre compartiment, affichez l’onglet Propriétés pour le compartiment.

  2. Sous Transfer acceleration (Accélération du transfert), Accelerated endpoint (Point de terminaison accéléré) affiche le point de terminaison Transfer Acceleration pour votre compartiment. Utilisez ce point de terminaison pour accéder à des transferts de données accélérés vers et depuis votre compartiment.

    Si vous interrompez Transfer Acceleration, le point de terminaison de l’accélération ne fonctionne plus.

Voici des exemples de commandes AWS CLI utilisées pour Transfer Acceleration. Pour obtenir des instructions sur la configuration de l’AWS CLI, consultez Développement avec Amazon S3 à l’aide de l’AWS CLI dans la Référence des API Amazon S3.

Activation de Transfer Acceleration sur un compartiment

Utilisez la commande AWS CLI put-bucket-accelerate-configuration pour activer ou suspendre Transfer Acceleration sur un compartiment.

L’exemple suivant configure Status=Enabled de manière à activer Transfer Acceleration sur un compartiment nommé amzn-s3-demo-bucket. Pour suspendre Transfer Acceleration, utilisez Status=Suspended.

$ aws s3api put-bucket-accelerate-configuration --bucket amzn-s3-demo-bucket --accelerate-configuration Status=Enabled

Utilisation de Transfer Acceleration

Vous pouvez diriger toutes les demandes Amazon S3 effectuées par les commandes AWS CLI s3 et s3api vers le point de terminaison d’accélération s3-accelerate.amazonaws.com. Pour ce faire, définissez la valeur de configuration use_accelerate_endpoint sur true dans un profil de votre fichier AWS Config. Transfer Acceleration doit être activé sur votre compartiment si vous souhaitez utiliser le point de terminaison d’accélération.

Toutes les demandes sont envoyées en utilisant le style virtuel de l’adressage de compartiment : amzn-s3-demo-bucket.s3-accelerate.amazonaws.com. Les requêtes ListBuckets, CreateBucket et DeleteBucket ne sont pas envoyées au point de terminaison d’accélération, car celui-ci ne prend pas en charge ces opérations.

Pour plus d’informations sur use_accelerate_endpoint, consultez Configuration S3 d’AWS CLI dans la Référence des commandes de l’AWS CLI.

L’exemple suivant définit use_accelerate_endpoint sur true dans le profil par défaut.

$ aws configure set default.s3.use_accelerate_endpoint true

Si vous souhaitez utiliser le point de terminaison de l’accélération de certaines commandes AWS CLI, mais pas de toutes, vous pouvez utiliser l’une ou l’autre des deux méthodes suivantes :

  • Utilisez le point de terminaison d’accélération pour la commande s3 ou s3api en définissant le paramètre --endpoint-url sur https://s3-accelerate.amazonaws.com.

  • Configurez des profils distincts dans votre fichier AWS Config. Par exemple, vous pouvez créer un profil qui définit use_accelerate_endpoint sur true et un profil qui ne définit pas use_accelerate_endpoint. Lorsque vous exécutez une commande, spécifiez le profil que vous souhaitez utiliser en fonction de votre intention d’utiliser le point de terminaison d’accélération.

Chargement d’un objet dans un compartiment activé pour Transfer Acceleration

L’exemple suivant charge un fichier dans un compartiment nommé amzn-s3-demo-bucket pour lequel Transfer Acceleration a été activé en utilisant le profil par défaut qui a été configuré pour utiliser le point de terminaison d’accélération.

$ aws s3 cp file.txt s3://amzn-s3-demo-bucket/key-name --region region

L’exemple suivant charge un fichier sur un compartiment activé pour Transfer Acceleration en utilisant le paramètre --endpoint-url pour spécifier le point de terminaison d’accélération.

$ aws configure set s3.addressing_style virtual $ aws s3 cp file.txt s3://amzn-s3-demo-bucket/key-name --region region --endpoint-url https://s3-accelerate.amazonaws.com

Voici des exemples d’utilisation de Transfer Acceleration pour charger des objets vers Amazon S3 à l’aide du kit AWS SDK. Certains langages pris en charge par le kit AWS SDK (par exemple, Java et .NET) utilisent un indicateur de configuration client du point de terminaison d’accélération pour vous éviter de définir explicitement le point de terminaison de Transfer Acceleration sur bucket-name.s3-accelerate.amazonaws.com.

Java

Pour utiliser un point de terminaison d’accélération pour charger un objet dans Amazon S3 à l’aide du kit AWS SDK pour Java, vous pouvez :

  • créer un client S3 configuré pour utiliser des points de terminaison d’accélération ; Tous les compartiments auxquels le client accède doivent avoir la fonction Transfer Acceleration activée.

  • activer Transfer Acceleration sur un compartiment spécifié ; Cette étape n’est nécessaire que si le compartiment que vous spécifiez ne possède pas déjà la fonction Transfer Acceleration activée.

  • vérifier que Transfer Acceleration est activée pour le compartiment spécifié ;

  • charger un nouvel objet dans le compartiment spécifié à l’aide du point de terminaison d’accélération du compartiment.

Pour plus d’informations sur l’utilisation de Transfer Acceleration, consultez Mise en route d’Amazon S3 Transfer Acceleration.

L’exemple de code suivant montre comment configurer Transfer Acceleration avec le kit AWS SDK pour Java.

import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider; import software.amazon.awssdk.core.sync.RequestBody; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.BucketAccelerateStatus; import software.amazon.awssdk.services.s3.model.GetBucketAccelerateConfigurationRequest; import software.amazon.awssdk.services.s3.model.PutBucketAccelerateConfigurationRequest; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.AccelerateConfiguration; import software.amazon.awssdk.services.s3.model.S3Exception; import software.amazon.awssdk.core.exception.SdkClientException; public class TransferAcceleration { public static void main(String[] args) { Region clientRegion = Region.US_EAST_1; String bucketName = "*** Provide bucket name ***"; String keyName = "*** Provide key name ***"; try { // Create an Amazon S3 client that is configured to use the accelerate endpoint. S3Client s3Client = S3Client.builder() .region(clientRegion) .credentialsProvider(ProfileCredentialsProvider.create()) .accelerate(true) .build(); // Enable Transfer Acceleration for the specified bucket. s3Client.putBucketAccelerateConfiguration( PutBucketAccelerateConfigurationRequest.builder() .bucket(bucketName) .accelerateConfiguration(AccelerateConfiguration.builder() .status(BucketAccelerateStatus.ENABLED) .build()) .build()); // Verify that transfer acceleration is enabled for the bucket. String accelerateStatus = s3Client.getBucketAccelerateConfiguration( GetBucketAccelerateConfigurationRequest.builder() .bucket(bucketName) .build()) .status().toString(); System.out.println("Bucket accelerate status: " + accelerateStatus); // Upload a new object using the accelerate endpoint. s3Client.putObject(PutObjectRequest.builder() .bucket(bucketName) .key(keyName) .build(), RequestBody.fromString("Test object for transfer acceleration")); System.out.println("Object \"" + keyName + "\" uploaded with transfer acceleration."); } catch (S3Exception 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(); } } }
.NET

L’exemple suivant montre comment utiliser le kit AWS SDK pour .NET pour activer Transfer Acceleration sur un compartiment. Pour plus d’informations sur la configuration et l’exécution des exemples de code, consultez Premiers pas avec le kit AWS SDK pour .NET dans le Guide du développeur AWS SDK pour .NET.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class TransferAccelerationTest { 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 s3Client; public static void Main() { s3Client = new AmazonS3Client(bucketRegion); EnableAccelerationAsync().Wait(); } static async Task EnableAccelerationAsync() { try { var putRequest = new PutBucketAccelerateConfigurationRequest { BucketName = bucketName, AccelerateConfiguration = new AccelerateConfiguration { Status = BucketAccelerateStatus.Enabled } }; await s3Client.PutBucketAccelerateConfigurationAsync(putRequest); var getRequest = new GetBucketAccelerateConfigurationRequest { BucketName = bucketName }; var response = await s3Client.GetBucketAccelerateConfigurationAsync(getRequest); Console.WriteLine("Acceleration state = '{0}' ", response.Status); } catch (AmazonS3Exception amazonS3Exception) { Console.WriteLine( "Error occurred. Message:'{0}' when setting transfer acceleration", amazonS3Exception.Message); } } } }

Lors du chargement d’un objet sur un compartiment pour lequel Transfer Acceleration est activé, vous spécifiez l’utilisation du point de terminaison d’accélération au moment de la création d’un client.

var client = new AmazonS3Client(new AmazonS3Config { RegionEndpoint = TestRegionEndpoint, UseAccelerateEndpoint = true }
JavaScript

Pour voir un exemple d’activation de Transfer Acceleration à l’aide du AWS SDK pour JavaScript, consultez la commande PutBucketAccelerateConfiguration dans la Référence des API AWS SDK pour JavaScript.

Python (Boto)

Pour voir un exemple d’activation de Transfer Acceleration à l’aide du kit SDK pour Python, consultez put_bucket_accelerate_configuration dans la Référence des API du kit AWS SDK pour Python (Boto3).

Other

Pour plus d’informations sur l’utilisation d’autres kits AWS SDK, consultez Exemples de code et de bibliothèques.

Utilisez l’opération PutBucketAccelerateConfiguration de l’API REST pour accélérer la configuration sur un compartiment existant.

Pour plus d’informations, veuillez consulter PutBucketAccelerateConfiguration dans la Référence des API Amazon Simple Storage Service.