Uso de los ARN de punto de acceso S3 en la versión 3 de AWS SDK para PHP - AWS SDK para 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 para 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 para 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:

  • Utilice GetObject con un ARN de punto de acceso para obtener un objeto de un bucket.

  • Utilice PutObject con un ARN de punto de acceso para agregar un objeto a un bucket.

  • 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 de AWS SDK para PHP está disponible aquí en GitHub.

Credenciales

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Autenticación AWS con la AWS SDK para PHP versión 3. A continuación, importe AWS SDK para PHP, como se indica en Instalación del AWS SDK para PHP versión 3.

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 de la 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