Habilitación y uso de Aceleración de transferencias de S3 - Amazon Simple Storage Service

Habilitación y uso de Aceleración de transferencias de S3

Puede utilizar Aceleración de transferencias de Amazon S3 para transferir de forma rápida y segura archivos a largas distancias entre el cliente y un bucket de uso general de S3. Puede habilitar Aceleración de transferencias a través de la consola de S3, AWS Command Line Interface (AWS CLI) o los AWS SDK.

En esta sección se facilitan ejemplos de cómo habilitar Aceleración de transferencias de Amazon S3 en un bucket y usar el punto de conexión de aceleración para el bucket activado.

Para obtener más información acerca de los requisitos de Aceleración de transferencias, consulte Configuración de transferencias de archivos rápidas y seguras con Aceleración de transferencias de Amazon S3.

nota

Si desea comparar velocidades de subida aceleradas y no aceleradas, abra la herramienta de comparación de velocidad de Aceleración de transferencias de Amazon S3.

La herramienta de comparación de velocidad utiliza cargas multiparte para transferir un archivo desde su navegador hacia diversas Regiones de AWS con Amazon S3 Transfer Acceleration y sin esta característica. Puede comparar la velocidad de subida para las subidas directas y transferir las subidas aceleradas por región.

Habilitación de Aceleración de transferencias para un bucket de uso general de S3
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. En el panel de navegación izquierdo, elija Buckets de uso general.

  3. En la lista Buckets de uso general, seleccione el nombre del bucket para el que desea habilitar la aceleración de transferencia.

  4. Seleccione Propiedades.

  5. En Aceleración de transferencias, elija Editar.

  6. Elija Habilitar y Guardar cambios.

Para acceder a transferencias aceleradas de datos
  1. Una vez que Amazon S3 habilite Aceleración de transferencias para el bucket, consulte la pestaña Propiedades del bucket.

  2. En Aceleración de transferencias, Punto de conexión acelerado muestra el punto de conexión de Aceleración de transferencias del bucket. Utilice este punto de conexión para acceder a transferencias de datos aceleradas desde y hacia el bucket.

    Si suspende Aceleración de transferencias, el punto de conexión de aceleración deja de funcionar.

A continuación, se presentan ejemplos de comandos de la AWS CLI utilizados para Aceleración de transferencias. Para obtener instrucciones sobre la configuración de la AWS CLI, consulte Desarrollo con Amazon S3 mediante la AWS CLI en la Referencia de la API de Amazon S3.

Habilitación de Aceleración de transferencias en un bucket

Utilice el comando put-bucket-accelerate-configuration de la AWS CLI para habilitar o suspender Aceleración de transferencias en un bucket.

En el siguiente ejemplo se configura Status=Enabled para habilitar Aceleración de transferencias en un bucket llamado amzn-s3-demo-bucket. Para suspender Aceleración de transferencias, utilice Status=Suspended.

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

Uso de Aceleración de transferencias

Puede dirigir todas las solicitudes de Amazon S3 realizadas por los comandos s3 y s3api al punto de conexión de aceleración: s3-accelerate.amazonaws.com. Para ello, establezca el valor de configuración use_accelerate_endpoint en true en un perfil del archivo de AWS Config. Aceleración de transferencias debe estar activado en su bucket para usar el punto de conexión acelerado.

Todas las solicitudes se envían mediante el direccionamiento al bucket de estilo virtual: amzn-s3-demo-bucket.s3-accelerate.amazonaws.com. Las solicitudes ListBuckets, CreateBucket y DeleteBucket no se envían al punto de conexión de aceleración, ya que este no admite estas operaciones.

Para obtener más información acerca de use_accelerate_endpoint, consulte Configuración de S3 con la AWS CLI en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo se establece use_accelerate_endpoint como true en el perfil predeterminado.

$ aws configure set default.s3.use_accelerate_endpoint true

Si quiere usar el punto de conexión acelerado para algunos comandos de la AWS CLI pero no otros, puede usar uno de los dos siguientes métodos:

  • Use el punto de conexión de aceleración de cualquier comando s3 o s3api estableciendo el parámetro --endpoint-url en https://s3-accelerate.amazonaws.com.

  • Configure perfiles separados en el archivo de AWS Config. Por ejemplo, puede crear un perfil que configure use_accelerate_endpoint como true y un perfil que no configure use_accelerate_endpoint. Al ejecutar un comando, especifique qué perfil quiere usar en función de si quiere usar el punto de conexión acelerado o no.

Carga de un objeto en un bucket habilitado para Aceleración de transferencias

En el siguiente ejemplo se carga un archivo en un bucket llamado amzn-s3-demo-bucket que se ha habilitado para Aceleración de transferencias usando el perfil predeterminado que se ha configurado para usar el punto de conexión de aceleración.

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

En el siguiente ejemplo se carga un archivo en un bucket activado para Aceleración de transferencias usando el parámetro --endpoint-url para especificar el punto de conexión acelerado.

$ 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

A continuación se presentan ejemplos del uso de Transfer Acceleration para cargar objetos en Amazon S3 con el AWS SDK. Algunos de los lenguajes compatibles con los SDK de AWS (por ejemplo, Java y .NET) utilizan una marca de configuración de cliente de punto de conexión de aceleración, de modo que no tendrá que establecer de forma explícita el punto de conexión de Aceleración de transferencias en bucket-name.s3-accelerate.amazonaws.com.

Java

En el siguiente ejemplo se demuestra cómo usar un punto de conexión acelerado para cargar un objeto en Amazon S3. En el ejemplo se realiza lo siguiente:

  • Crea un AmazonS3Client que se configura para usar puntos de conexión de aceleración. Todos los buckets a los que accede el cliente deben tener Aceleración de transferencias habilitado.

  • Habilita Aceleración de transferencias en un bucket específico. Este paso solo es necesario si el bucket que especifica aún no tiene Aceleración de transferencias habilitado.

  • Verifica que Aceleración de transferencias está habilitada para el bucket especificado.

  • Carga un nuevo objeto en el bucket especificado utilizando el punto de conexión de aceleración del bucket.

Para obtener más información acerca del uso de Aceleración de transferencias, consulte Introducción a Aceleración de transferencias de Amazon S3. Para obtener instrucciones sobre cómo crear y probar una muestra funcional, consulte Introducción en la Guía para desarrolladores de AWS SDK para Java.

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; import com.amazonaws.services.s3.model.BucketAccelerateConfiguration; import com.amazonaws.services.s3.model.BucketAccelerateStatus; import com.amazonaws.services.s3.model.GetBucketAccelerateConfigurationRequest; import com.amazonaws.services.s3.model.SetBucketAccelerateConfigurationRequest; public class TransferAcceleration { public static void main(String[] args) { Regions clientRegion = Regions.DEFAULT_REGION; String bucketName = "*** Bucket name ***"; String keyName = "*** Key name ***"; try { // Create an Amazon S3 client that is configured to use the accelerate endpoint. AmazonS3 s3Client = AmazonS3ClientBuilder.standard() .withRegion(clientRegion) .withCredentials(new ProfileCredentialsProvider()) .enableAccelerateMode() .build(); // Enable Transfer Acceleration for the specified bucket. s3Client.setBucketAccelerateConfiguration( new SetBucketAccelerateConfigurationRequest(bucketName, new BucketAccelerateConfiguration( BucketAccelerateStatus.Enabled))); // Verify that transfer acceleration is enabled for the bucket. String accelerateStatus = s3Client.getBucketAccelerateConfiguration( new GetBucketAccelerateConfigurationRequest(bucketName)) .getStatus(); System.out.println("Bucket accelerate status: " + accelerateStatus); // Upload a new object using the accelerate endpoint. s3Client.putObject(bucketName, keyName, "Test object for transfer acceleration"); System.out.println("Object \"" + keyName + "\" uploaded with transfer acceleration."); } 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(); } } }
.NET

En el siguiente ejemplo, se muestra cómo usar AWS SDK para .NET con el fin de habilitar Transfer Acceleration en un bucket. Para obtener información acerca de cómo configurar y ejecutar ejemplos de código, consulte Introducción a AWS SDK para .NET en la Guía para desarrolladores de AWS SDK para .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); } } } }

Al cargar un objeto en un bucket que tenga Aceleración de transferencias habilitado, especifique el uso del punto de conexión de aceleración en el momento de crear un cliente.

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

Para ver un ejemplo de cómo habilitar Aceleración de transferencias mediante AWS SDK para JavaScript, consulte PutBucketAccelerateConfiguration command en la Referencia de la API de AWS SDK para JavaScript.

Python (Boto)

Para ver un ejemplo de cómo habilitar Aceleración de transferencias con el SDK para Python, consulte put_bucket_accelerate_configuration en la Referencia de la API de SDK para Python (Boto3) de AWS.

Other

Para obtener información acerca del uso de otros AWS SDK, consulte Código de muestra y bibliotecas.

Utilice la operación PutBucketAccelerateConfiguration de la API de REST para habilitar la configuración acelerada en un bucket existente.

Para obtener más información, consulte PutBucketAccelerateConfiguration en la Referencia de la API de Amazon Simple Storage Service.