Updated on 2026-01-16 GMT+08:00

Restoring a Specific Cold Object Version

You can call ObsClient->restoreObject to restore a Cold object version by specifying VersionId.

This example specifies versionId to restore Cold object destobjectname in destbucketname as a Standard object.

The example code is as follows:

// Import the dependency library.
require 'vendor/autoload.php';
// Import the SDK code library during source code installation.
// require 'obs-autoloader.php';
// Declare the namespace.
use Obs\ObsClient;
// Create an instance of ObsClient.
$obsClient = new ObsClient ( [ 
      //Obtain an AK/SK pair using environment variables or import the AK/SK pair in other ways. Using hard coding may result in leakage.
      //Obtain an AK/SK pair on the management console.
      'key' => getenv('ACCESS_KEY_ID'),
      'secret' => getenv('SECRET_ACCESS_KEY'),
      'endpoint' => 'https://your-endpoint'
] );

$resp = $obsClient->restoreObject([
       'Bucket' => 'destbucketname',
       'Key' => 'destobjectname',
       'VersionId' => 'versionid',
       'Days' => 1,
       // Restore a versioned object at an expedited speed.
       'Tier' => ObsClient::RestoreTierExpedited
]);

printf ("RequestId:%s\n", $resp ['RequestId']);

To prolong the validity period of the Cold data restored, you can repeatedly restore the data, but you will be billed for each restoration. After a second restore, the validity period of Standard object copies will be prolonged, and you need to pay for storing these copies during the prolonged period.