Objek dalam kelas penyimpanan Archive, Cold Archive, dan Deep Cold Archive harus dipulihkan sebelum dapat dibaca. Saat objek dipulihkan, replika sementara dalam kelas penyimpanan Standar dibuat. Objek asli dan replikanya berdampingan. Replika tersebut akan dihapus secara otomatis setelah periode pemulihan berakhir. Topik ini menjelaskan cara memulihkan objek Archive, Cold Archive, dan Deep Cold Archive menggunakan OSS SDK untuk PHP.
Catatan
Operasi RestoreObject hanya dapat digunakan untuk memulihkan objek dalam kelas penyimpanan Archive, Cold Archive, dan Deep Cold Archive.
Kode contoh dalam topik ini menggunakan ID wilayah
cn-hangzhouuntuk Wilayah (Hangzhou) Tiongkok. Titik akhir publik digunakan secara default. Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, Anda dapat menggunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan titik akhir OSS.Untuk memulihkan objek, Anda harus memiliki izin
oss:RestoreObject. Untuk informasi lebih lanjut, lihat Melampirkan kebijakan kustom ke Pengguna RAM.
Kode contoh
Gunakan kode berikut untuk memulihkan objek Archive, Cold Archive, atau Deep Cold Archive:
<?php
// Sertakan file autoload untuk memastikan bahwa pustaka dependensi dimuat dengan benar.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan deskripsi parameter baris perintah.
$optsdesc = [
"region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // Diperlukan. Wilayah tempat bucket berada.
"endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // Opsional. Titik akhir.
"bucket" => ['help' => 'Nama bucket', 'required' => True], // Diperlukan. Nama bucket.
"key" => ['help' => 'Nama objek', 'required' => True], // Diperlukan. Nama objek.
];
// Ubah deskripsi parameter menjadi format opsi panjang yang diperlukan oleh getopt.
// Tanda titik dua (:) ditambahkan di akhir setiap parameter untuk menunjukkan bahwa parameter tersebut memerlukan nilai.
$longopts = \array_map(function ($key) {
return "$key:";
}, array_keys($optsdesc));
// Parsing parameter baris perintah.
$options = getopt("", $longopts);
// Periksa apakah parameter yang diperlukan ada.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help']; // Dapatkan informasi bantuan untuk parameter.
echo "Error: argumen berikut diperlukan: --$key, $help" . PHP_EOL;
exit(1); // Keluar dari program jika parameter yang diperlukan tidak ada.
}
}
// Ekstrak nilai dari parameter yang telah diuraikan.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
$key = $options["key"]; // Nama objek.
// Muat informasi kredensial dari variabel lingkungan.
// Gunakan EnvironmentVariableCredentialsProvider untuk membaca Access Key ID dan Access Key Secret dari variabel lingkungan.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();
// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Tetapkan penyedia kredensial.
$cfg->setRegion($region); // Tetapkan wilayah tempat bucket berada.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]); // Tetapkan titik akhir jika titik akhir disediakan.
}
// Buat instans klien OSS.
$client = new Oss\Client($cfg);
// Buat objek RestoreObjectRequest untuk memulihkan objek Archive.
$request = new Oss\Models\RestoreObjectRequest(bucket: $bucket, key: $key);
// Pulihkan objek.
$result = $client->restoreObject($request);
// Cetak hasil pemulihan.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP. Contohnya, 200 menunjukkan sukses.
'request id:' . $result->requestId . PHP_EOL // ID permintaan, yang digunakan untuk debug atau jejak permintaan.
);
Skenario umum
Referensi
Untuk kode contoh lengkap, lihat contoh di GitHub.
Untuk informasi lebih lanjut tentang operasi API, lihat RestoreObject.
Untuk informasi lebih lanjut tentang memulihkan objek, lihat Memulihkan objek.