Uso de puntos de conexión de doble pila en Amazon S3 - Amazon Simple Storage Service

Uso de puntos de conexión de doble pila en Amazon S3

Los puntos de enlace de doble pila de Amazon S3; admiten solicitudes a buckets de S3 a través de IPv6 y de IPv4. En esta sección se describe cómo utilizar los puntos de enlace de doble pila.

Puntos de conexión de doble pila en Amazon S3

Cuando realiza una solicitud a un punto de enlace de doble pila, la URL del bucket resuelve a una dirección IPv6 o IPv4. Para obtener más información acerca de cómo obtener acceso a un bucket mediante IPv6, consulte Realización de solicitudes a Amazon S3 mediante IPv6.

Cuando utiliza la API REST, accede directamente a un punto de enlace de Amazon S3 mediante el nombre del punto de enlace (URI). Puede obtener acceso a un bucket de S3 mediante un punto de conexión de doble pila con un nombre de punto de conexión de estilo alojado virtual o de estilo ruta. Amazon S3 solo es compatible con nombres de puntos de enlace de doble pila regionales, lo que implica que debe especificar la región como parte del nombre.

Use las siguientes convenciones de nomenclatura para los nombres de punto de conexión de doble pila de estilo alojado virtual y de estilo de ruta

  • punto de conexión de doble pila de estilo alojado virtual:

    bucketname.s3.dualstack.aws-region.amazonaws.com

     

  • punto de conexión de doble pila de estilo de ruta:

    s3.dualstack.aws-region.amazonaws.com/bucketname

Para obtener más información acerca de los estilos de denominación de los puntos de enlace, consulte Acceso y publicación de un bucket de Amazon S3. Para ver una lista de los puntos de conexión de Amazon S3, consulte Regiones y puntos de conexión en la Referencia general de AWS.

importante

Puede usar transfer acceleration con los puntos de enlace de doble pila. Para obtener más información, consulte Introducción a Amazon S3 Transfer Acceleration.

nota

Los dos tipos de puntos de conexión de VPC para acceder a Amazon S3 (Puntos de conexión de VPC de tipo interfaz y Puntos de conexión de VPC de puerta de enlace) no son compatibles con la doble pila. Para obtener más información acerca de los puntos de conexión de VPC de Amazon S3, consulte AWS PrivateLink para Amazon S3.

Al usar AWS Command Line Interface (AWS CLI) y los SDK de AWS, puede utilizar un parámetro o una marca para cambiar a un punto de enlace de doble pila. También puede especificar el punto de enlace de doble pila directamente como una anulación del punto de enlace de Amazon S3 en el archivo de configuración. En las secciones siguientes, se describe cómo utilizar los puntos de enlace de doble pila desde la AWS CLI y los SDK de AWS.

Usar puntos de enlace de doble pila desde la AWS CLI

Esta sección proporciona ejemplos de comandos de la AWS CLI. que se usan para realizar solicitudes a un punto de conexión de doble pila. Para obtener instrucciones acerca de cómo configurar la AWS CLI, consulte Desarrollo con Amazon S3 mediante la AWS CLI.

Puede establecer el valor de configuración use_dualstack_endpoint a true en un perfil de su archivo de AWS Config para dirigir todas las solicitudes de Amazon S3 que realicen los comandos s3 y s3api de la AWS CLI al punto de enlace de doble pila para la región especificada. Puede especificar la región en el archivo de configuración o en un comando utilizando la opción --region.

Cuando utilice puntos de enlace de doble pila con la AWS CLI, puede utilizar los estilos de direccionamiento path y virtual. El estilo de direccionamiento configurado en el archivo de configuración controla si el nombre del bucket está en el hostname o es parte de la URL. La CLI intentará, de manera predeterminada, usar el estilo virtual siempre que sea posible, pero si es necesario recurrirá al estilo de ruta. Para obtener más información, consulte Configuración de la AWS CLI de Amazon S3).

También puede realizar cambios a la configuración mediante un comando, como se muestra en el siguiente ejemplo, en el que se configura use_dualstack_endpoint como true y addressing_style como virtual en el perfil predeterminado.

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

Si quiere utilizar un punto de conexión de doble pila exclusivamente para comandos de la AWS CLI específicos (no para todos los comandos), puede usar uno de los métodos siguientes:

  • Puede utilizar el punto de conexión de doble pila por cada comando configurando el parámetro --endpoint-url como https://s3.dualstack.aws-region.amazonaws.com o http://s3.dualstack.aws-region.amazonaws.com para cualquier comando s3 o s3api.

    $ aws s3api list-objects --bucket bucketname --endpoint-url https://s3.dualstack.aws-region.amazonaws.com
  • Puede configurar perfiles separados en su archivo de AWS Config. Por ejemplo, puede crear un perfil que configure use_dualstack_endpoint como true y un perfil que no configure use_dualstack_endpoint. Al ejecutar un comando, especifique qué perfil quiere usar, en función de si quiere usar el punto de conexión de doble pila o no.

nota

Por el momento, al usar la AWS CLI no podrá utilizar la transfer acceleration con puntos de enlace de doble pila. Sin embargo, pronto ofreceremos compatibilidad con la AWS CLI. Para obtener más información, consulte Uso de la AWS CLI.

Uso de los puntos de enlace de doble pila de los SDK de AWS

En esta sección, se proporcionan ejemplos de cómo obtener acceso a un punto de enlace de doble pila con los SDK de AWS.

AWS SDK for JavaEjemplo de punto de enlace de doble pila con

En el siguiente ejemplo, se muestra cómo habilitar puntos de enlace de doble pila al crear un cliente de Amazon S3 mediante AWS SDK for Java.

Para obtener instrucciones sobre la creación y comprobación de una muestra funcional de Java, consulte Prueba de los ejemplos de código de Java de 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 está utilizando AWS SDK for Java en Windows, puede que tenga que configurar adecuadamente la siguiente propiedad de la máquina virtual Java (JVM):

java.net.preferIPv6Addresses=true

AWSEjemplo de punto de enlace de doble pila con el SDK para .NET

Cuando utiliza el SDK de AWS para .NET, puede usar la clase AmazonS3Config para habilitar el uso de un punto de enlace de doble pila, como se muestra en el siguiente ejemplo.

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()); } } } }

Para ver una muestra completa en .NET para enumerar objetos, consulte Descripción de claves de objeto mediante programación.

Para obtener información acerca de cómo crear y probar una muestra funcional en .NET, consulte Ejecución de ejemplos de código .NET de Amazon S3.

Usar los puntos de enlace de doble pila desde la API REST

Para obtener información sobre cómo realizar solicitudes a puntos de enlace de doble pila con la API REST, consulte Realizar solicitudes a los puntos de enlace de doble pila con la API REST.