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.
Programmation asynchrone à l'aide de la version 3 AWS SDK pour PHP
Vous pouvez envoyer des commandes simultanément à l'aide des fonctions asynchrones du kit SDK. Vous pouvez envoyer des requêtes de manière asynchrone en ajoutant Async
à la fin du nom d'une opération. Cette méthode lance la requête et renvoie une promesse.
La promesse est exécutée avec l'objet de résultat en cas de réussite ou rejetée avec une exception en cas d'échec. Cela vous permet de créer plusieurs promesses et de leur faire envoyer des requêtes HTTP simultanément lorsque le gestionnaire HTTP sous-jacent transfère les requêtes.
Importations
require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;
Exemple de code
// Create an SDK class used to share configuration across clients. $sdk = new Aws\Sdk([ 'region' => 'us-west-2' ]); // Use an Aws\Sdk class to create the S3Client object. $s3Client = $sdk->createS3(); //Listing all S3 Bucket $CompleteSynchronously = $s3Client->listBucketsAsync(); // Block until the result is ready. $CompleteSynchronously = $CompleteSynchronously->wait();
Vous pouvez forcer une promesse à exécuter les opérations de manière synchrone à l'aide de la méthode wait
de la promesse. L'exécution forcée de la promesse « débloque » l'état de la promesse par défaut : le résultat de la promesse est renvoyé ou l'exception rencontrée est levée. Lorsque vous appelez wait()
sur une promesse, le processus se bloque jusqu'à ce que la requête HTTP soit terminée et que le résultat soit renseigné ou qu'une exception soit levée.
Lorsque vous utilisez le kit SDK avec une bibliothèque de boucles d'événements, ne bloquez pas les résultats. Utilisez plutôt la méthode then()
d'un résultat pour accéder à une promesse résolue ou rejetée une fois l'opération terminée.
Importations
require 'vendor/autoload.php'; use Aws\S3\S3Client; use Aws\Exception\AwsException;
Exemple de code
// Create an SDK class used to share configuration across clients. $sdk = new Aws\Sdk([ 'region' => 'us-west-2' ]); // Use an Aws\Sdk class to create the S3Client object. $s3Client = $sdk->createS3();
$promise = $s3Client->listBucketsAsync(); $promise ->then(function ($result) { echo 'Got a result: ' . var_export($result, true); }) ->otherwise(function ($reason) { echo 'Encountered an error: ' . $reason->getMessage(); });