Client multirégional Amazon S3 avec AWS SDK for PHP version 3 - AWS SDK for PHP

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Client multirégional Amazon S3 avec AWS SDK for PHP version 3

Le kit AWS SDK for PHP version 3 fournit un client sur plusieurs régions générique utilisable avec n’importe quel service. Cela permet aux utilisateurs de spécifier à quelle AWS région envoyer une commande en fournissant un paramètre @region d'entrée à n'importe quelle commande. En outre, le SDK fournit un client multirégional pour Amazon S3 qui répond intelligemment aux erreurs spécifiques d'Amazon S3 et redirige les commandes en conséquence. Cela permet aux utilisateurs d'utiliser le même client pour parler à plusieurs régions. Il s'agit d'une fonctionnalité particulièrement utile pour les utilisateurs de l'Amazon S3 Stream Wrapper AWS SDK for PHP version 3, dont les compartiments résident dans plusieurs régions.

Utilisation de base

Le modèle d'utilisation de base d'un client Amazon S3 est le même, qu'il s'agisse d'un client S3 standard ou de son équivalent multirégional. La seule différence d'utilisation au niveau de la commande est qu'une AWS région peut être spécifiée à l'aide du paramètre @region d'entrée.

// 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', ]);
Important

Lorsque vous utilisez le client Amazon S3 multirégional, vous ne rencontrerez aucune exception de redirection permanente. Un client Amazon S3 standard lance une instance Aws\S3\Exception\PermanentRedirectException lorsqu'une commande est envoyée à la mauvaise région. Un client sur plusieurs régions, quant à lui, réexpédie la commande vers la région appropriée.

Cache de la région du compartiment

Les clients multirégionaux Amazon S3 conservent un cache interne des AWS régions dans lesquelles résident des compartiments donnés. Par défaut, chaque client possède son propre cache en mémoire. Pour partager un cache entre plusieurs clients ou processus, fournissez une instance de Aws\CacheInterface comme option bucket_region_cache à votre client sur plusieurs régions.

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), ], ]);