全部产品
Search
文档中心

Object Storage Service:Memulihkan file (PHP SDK V1)

更新时间:Nov 30, 2025

Objek Archive, Cold Archive, dan Deep Cold Archive harus dipulihkan terlebih dahulu sebelum dapat dibaca. Topik ini menjelaskan cara memulihkan objek Archive dan Cold Archive.

Catatan

  • Hanya objek Archive, Cold Archive, dan Deep Cold Archive yang mendukung operasi RestoreObject.

  • Pada topik ini, digunakan titik akhir publik wilayah China (Hangzhou). Untuk mengakses OSS dari layanan Alibaba Cloud lainnya dalam wilayah yang sama, gunakan titik akhir internal. Untuk detail mengenai wilayah dan titik akhir yang didukung, lihat Regions and endpoints.

  • Pada topik ini, instans OSSClient dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient dengan nama domain kustom atau Security Token Service (STS), lihat Create an OssClient.

  • Untuk memulihkan file, Anda harus memiliki izin oss:RestoreObject. Untuk informasi selengkapnya, lihat Grant custom permissions to a RAM user.

Memulihkan objek Archive

Kode berikut menunjukkan cara memulihkan objek Archive:

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}

use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\CoreOssException;

// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
$provider = new EnvironmentVariableCredentialsProvider();
// Titik akhir diatur ke wilayah China (Hangzhou). Gantilah dengan Titik akhir yang sebenarnya.
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// Tentukan nama bucket. Contoh: examplebucket.
$bucket= "examplebucket";
// Tentukan path lengkap objek Archive. Jangan sertakan nama bucket. Contoh: srcexampleobject.txt.
$object = "srcexampleobject.txt";

try {
    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);
    // Pulihkan file.
    $ossClient->restoreObject($bucket, $object);
} catch (OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}
print(__FUNCTION__ . ": OK" . "\n");        

Memulihkan objek Cold Archive

Kode berikut menunjukkan cara memulihkan objek Cold Archive:

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}

use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\CoreOssException;
use OSS\Model\RestoreConfig;

// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
$provider = new EnvironmentVariableCredentialsProvider();
// Titik akhir diatur ke wilayah China (Hangzhou). Gantilah dengan Titik akhir yang sebenarnya.
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// Tentukan nama bucket. Contoh: examplebucket.
$bucket= "examplebucket";
// Tentukan path lengkap objek Cold Archive. Jangan sertakan nama bucket. Contoh: srcexampleobject.txt.
$object = "srcexampleobject.txt";

try {
    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);
    // Jumlah hari objek tetap dalam keadaan dipulihkan. Nilai valid: 1 hingga 7.
    $day = 3; 
    // Prioritas pemulihan. Diatur ke Bulk, artinya objek dipulihkan dalam waktu 5 hingga 12 jam.
    // Untuk memulihkan objek dalam waktu 2 hingga 5 jam, atur parameter ini ke Standard. Untuk memulihkan objek dalam waktu 1 jam, atur parameter ini ke Expedited.
    $tier = "Bulk"; 

    $config = new RestoreConfig($day,$tier);

    $options = array(
      OssClient::OSS_RESTORE_CONFIG => $config
    );

        $result = $ossClient->restoreObject($bucket, $object,$options);
} catch (OssException $e) {
    printf($e->getMessage() . "\n");
    return;
}            

Referensi

Untuk informasi selengkapnya tentang operasi API yang digunakan untuk memulihkan file Archive dan Cold Archive, lihat RestoreObject.