Uso de los ARN de punto de acceso S3 en la versión 3 de AWS SDK for PHP - AWS SDK for PHP

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de los ARN de punto de acceso S3 en la versión 3 de AWS SDK for PHP

S3 introdujo los puntos de acceso, una nueva forma de interactuar con los buckets de S3. Los puntos de acceso pueden tener políticas y configuraciones únicas aplicadas a ellos en lugar de directamente al bucket. AWS SDK for PHP le permite utilizar ARN de punto de acceso en el campo del bucket para operaciones de la API en lugar de especificar explícitamente el nombre del bucket. Puede encontrar más información sobre cómo funcionan los ARN y los puntos de acceso S3 aquí. Los siguientes ejemplos muestran cómo:

  • GetObjectUtilícelo con el ARN de un punto de acceso para recuperar un objeto de un depósito.

  • PutObjectUtilícelo con el ARN de un punto de acceso para añadir un objeto a un depósito.

  • Configure el cliente de S3 para que utilice la región ARN en lugar de la región de cliente.

Todo el código de ejemplo para el AWS SDK for PHP está disponible aquí en GitHub.

Credenciales

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Credentials. A continuación, importe AWS SDK for PHP, como se indica en Uso básico.

Importaciones

require 'vendor/autoload.php'; use Aws\S3\S3Client;

Get Object

En primer lugar, cree un servicio cliente AWS.S3 que especifique la región de AWS y la versión. Luego llame al método getObject con su clave y un ARN de punto de acceso de S3 en el campo Bucket, que obtendrá el objeto del bucket asociado con ese punto de acceso.

Código de muestra

$s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-west-2', ]); $result = $s3->getObject([ 'Bucket' => 'arn:aws:s3:us-west-2:123456789012:accesspoint:endpoint-name', 'Key' => 'MyKey' ]);

Colocar un objeto en un bucket

En primer lugar, cree un servicio cliente AWS.S3 que especifique la región de AWS y la versión. A continuación, llame al método putObject con la clave, el cuerpo o el archivo de origen deseados y un ARN de punto de acceso de S3 en el campo Bucket, que colocará el objeto en el bucket asociado con ese punto de acceso.

Código de muestra

$s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-west-2', ]); $result = $s3->putObject([ 'Bucket' => 'arn:aws:s3:us-west-2:123456789012:accesspoint:endpoint-name', 'Key' => 'MyKey', 'Body' => 'MyBody' ]);

Configure el cliente de S3 para que utilice la región ARN en lugar de la región de cliente

Cuando se utiliza un ARN de punto de acceso de S3 en una operación de cliente de S3, de forma predeterminada el cliente se asegurará de que la región ARN coincida con la región de cliente, produciendo una excepción si no lo hace. Este comportamiento se puede cambiar para aceptar la región ARN por delante de la región de cliente estableciendo la opción de configuración use_arn_region en true. De forma predeterminada, la opción se establece en false.

Código de muestra

$s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-west-2', 'use_arn_region' => true ]);

El cliente también comprobará una variable de entorno y una opción de archivo de configuración, en el siguiente orden de prioridad:

  1. La opción de cliente use_arn_region, como en el ejemplo anterior.

  2. La variable de entorno AWS_S3_USE_ARN_REGION

export AWS_S3_USE_ARN_REGION=true
  1. La variable de configuración s3_use_arn_region en el archivo de configuración compartida de AWS (de forma predeterminada en ~/.aws/config).

[default] s3_use_arn_region = true