• Object Storage Service

  1. Help Center
  2. Object Storage Service
  3. Developer Guide (PHP SDK)
  4. Initialization
  5. Asynchronous Method Call

Asynchronous Method Call

All bucket- and object-related APIs provided by OBS PHP SDK can be called by asynchronous methods whose names end with Async (such as ObsClient->putObjectAsync if the synchronous method is named ObsClient->putObject). The returned result will be output to a callback function. A callback function contains an SDK custom exception and an SDK common result object in sequence. If the SDK common result object is not null, the operation fails. Otherwise, the operation succeeds.

The following code shows how to upload an object in asynchronous method call mode:

// Import the third-party open source libraries.
require 'vendor/autoload.php';
// Import the SDK code library.
require 'obs-autoloader.php';
// Declare the namespace.
use Obs\S3\ObsClient;
// Create an instance of ObsClient.
$obsClient = new ObsClient ( [ 
       'key' => '*** Provide your Access Key ***',
       'secret' => '*** Provide your Secret Key ***',
       'endpoint' => 'https://yourdomainname'
] );

// Upload the object in asynchronous method call mode.
$promise = $obsClient->putObjectAsync ( [ 
       'Bucket' => 'bucketname',
       'Key' => 'objectkey',
       'Body' => 'Hello OBS' 
], function ($obsException, $resp) {
       if ($obsException === null) {
              printf ( "RequestId:%s\n", $resp ['RequestId'] );
       } else {
              printf ( "ExceptionCode:%s\n", $obsException->getExceptionCode () );
              printf ( "ExceptionMessage:%s\n", $obsException->getExceptionMessage () );
} );
$promise->wait ();

A result object (GuzzleHttp\Promise\Promise) will be returned upon an asynchronous method call. You need to call the wait method of the object to wait until the asynchronous method call is complete.