Cliente de Amazon S3 para varias regiones con la versión 3 de - 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.

Cliente de Amazon S3 para varias regiones con la versión 3 de

El AWS SDK for PHP versión 3 proporciona un cliente genérico para varias regiones que se puede utilizar con cualquier servicio. Esto permite a los usuarios especificar la región de AWS a la que quieren enviar un comando proporcionando un parámetro de entrada @region a cualquier comando. Además, el SDK proporciona un cliente para varias regiones de Amazon S3 que responde de forma inteligente a errores específicos de Amazon S3 y redirige los comandos en consecuencia. Esto permite a los usuarios utilizar el mismo cliente para comunicarse con varias regiones. Se trata de una función especialmente útil para los usuarios de Encapsulador de flujo de Amazon S3 con la versión 3 de AWS SDK for PHP, cuyos buckets residen en varias regiones.

Uso básico

El patrón de uso básico de un cliente de Amazon S3 es el mismo tanto si se usa un cliente de S3 estándar como su equivalente para varias regiones. a única diferencia de uso en el nivel de comandos es que una región de AWS se puede especificar con el parámetro de entrada @region.

// Create a multi-region S3 client $s3Client = (new \Aws\Sdk)->createMultiRegionS3(['version' => 'latest']); // You can also use the client constructor $s3Client = new \Aws\S3\S3MultiRegionClient([ 'version' => 'latest', // Any Region specified while creating the client will be used as the // default Region 'region' => 'us-west-2', ]); // Get the contents of a bucket $objects = $s3Client->listObjects(['Bucket' => $bucketName]); // If you would like to specify the Region to which to send a command, do so // by providing an @region parameter $objects = $s3Client->listObjects([ 'Bucket' => $bucketName, '@region' => 'eu-west-1', ]);
importante

Si utiliza el cliente de Amazon S3 para varias regiones, no habrá excepciones de redireccionamiento permanente. Un cliente estándar de Amazon S3 lanzará una instancia de Aws\S3\Exception\PermanentRedirectException cuando se envíe un comando a la región incorrecta. En cambio, un cliente para varias regiones reenviará el comando a la región correcta.

Caché de la región del bucket

Los clientes de Amazon S3 para varias regiones mantienen una caché interna de las regiones de AWS en las que residen determinados buckets. De forma predeterminada, cada cliente tiene su propia caché en memoria. Para compartir una memoria caché entre los clientes o procesos, proporcione una instancia de Aws\CacheInterface según la opción bucket_region_cache para su cliente para varias regiones.

use Aws\DoctrineCacheAdapter; use Aws\Sdk; use Doctrine\Common\Cache\ApcuCache; $sdk = new Aws\Sdk([ 'version' => 'latest', 'region' => 'us-west-2', 'S3' => [ 'bucket_region_cache' => new DoctrineCacheAdapter(new ApcuCache), ], ]);