Cliente de Amazon S3 para varias regiones conAWS SDK for PHPVersión 3 - 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 conAWS SDK for PHPVersión 3

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 quéAWSRegión a la que enviar un comando proporcionando un@regionparámetro de entrada a cualquier comando. Además, el SDK proporciona un cliente de Amazon S3 para varias regiones que responde de manera inteligente a determinados errores de Amazon S3 y que redirige los comandos en consecuencia. Esto permite a los usuarios utilizar el mismo cliente para comunicarse con varias regiones. Se trata de una característica particularmente útil para los usuarios delEncapsulador de flujo de Amazon S3 conAWS SDK for PHPVersión 3, cuyos depósitos 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. La única diferencia de uso en el nivel de comandos es que unAWSLa región se puede especificar mediante el@regionparámetro de entrada.

// 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á ninguna excepción de redireccionamiento permanente. Si se envía una instancia de Amazon S3 estándar lanzará una instancia deAws\S3\Exception\PermanentRedirectExceptioncuando se envía 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 delAWSRegiones en las que residen cubos determinados. 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), ], ]);