Pengaturan pengendalian versi bucket berlaku untuk semua objek dalam bucket. Saat Anda mengaktifkan pengendalian versi untuk bucket, Anda dapat memulihkan versi sebelumnya dari objek di bucket jika Anda secara tidak sengaja menimpa atau menghapus objek tersebut.
Pertimbangan
Kode contoh dalam topik ini menggunakan Wilayah China (Hangzhou) (ID:
cn-hangzhou) sebagai contoh. Kode ini menggunakan titik akhir publik secara default. Jika Anda ingin mengakses OSS dari produk Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan Titik Akhir OSS.Untuk mengatur status pengendalian versi bucket, Anda harus memiliki izin
oss:PutBucketVersioning. Untuk mengambil status pengendalian versi bucket, Anda harus memiliki izinoss:GetBucketVersioning. Untuk informasi lebih lanjut, lihat Berikan Izin Kustom kepada Pengguna RAM.
Kode Contoh
Atur status pengendalian versi bucket
Gunakan kode berikut untuk mengatur status pengendalian versi bucket menjadi Diaktifkan.
<?php
// Impor file autoloader untuk memastikan bahwa library dependensi dimuat dengan benar.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan deskripsi untuk argumen baris perintah.
$optsdesc = [
"region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // Wilayah tempat bucket berada. (Diperlukan)
"endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // Titik akhir. (Opsional)
"bucket" => ['help' => 'Nama bucket', 'required' => True], // Nama bucket. (Diperlukan)
];
// Ubah deskripsi argumen ke format opsi panjang yang diperlukan oleh getopt.
// Tambahkan tanda titik dua ":" setelah setiap argumen untuk menunjukkan bahwa argumen tersebut memerlukan nilai.
$longopts = \array_map(function ($key) {
return "$key:";
}, array_keys($optsdesc));
// Parsing argumen baris perintah.
$options = getopt("", $longopts);
// Verifikasi bahwa argumen yang diperlukan telah diberikan.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help']; // Dapatkan informasi bantuan untuk argumen.
echo "Error: argumen berikut diperlukan: --$key, $help" . PHP_EOL;
exit(1); // Jika argumen yang diperlukan tidak ada, keluar dari program.
}
}
// Ekstrak nilai dari argumen yang telah diparsing.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
// 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); // Atur penyedia kredensial.
$cfg->setRegion($region); // Atur wilayah tempat bucket berada.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]); // Jika titik akhir diberikan, atur titik akhir.
}
// Buat instance klien OSS.
$client = new Oss\Client($cfg);
// Buat objek PutBucketVersioningRequest untuk mengaktifkan fitur pengendalian versi pada bucket.
$request = new Oss\Models\PutBucketVersioningRequest(
bucket: $bucket,
versioningConfiguration: new Oss\Models\VersioningConfiguration(
status: 'Enabled' // Atur status pengendalian versi menjadi "Diaktifkan".
)
);
// Jalankan operasi untuk mengaktifkan pengendalian versi pada bucket.
$result = $client->putBucketVersioning($request);
// Cetak hasil dari pengaktifan pengendalian versi.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP. Misalnya, 200 menunjukkan sukses.
'request id:' . $result->requestId . PHP_EOL // ID permintaan, yang digunakan untuk debug atau jejak permintaan.
);
Dapatkan informasi status pengendalian versi bucket
Gunakan kode berikut untuk mendapatkan informasi status pengendalian versi bucket.
<?php
// Sertakan file autoloader untuk memastikan bahwa library dependensi dimuat dengan benar.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan deskripsi untuk argumen baris perintah.
$optsdesc = [
"region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True],
"endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False],
"bucket" => ['help' => 'Nama bucket', 'required' => True],
];
// Ubah deskripsi argumen ke format opsi panjang yang diperlukan oleh getopt.
// Tanda titik dua (:) setelah setiap argumen menunjukkan bahwa argumen tersebut memerlukan nilai.
$longopts = \array_map(function ($key) {
return "$key:";
}, array_keys($optsdesc));
// Parsing argumen baris perintah.
$options = getopt("", $longopts);
// Verifikasi bahwa semua argumen yang diperlukan telah diberikan.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help']; // Dapatkan informasi bantuan untuk argumen.
echo "Error: argumen berikut diperlukan: --$key, $help" . PHP_EOL;
exit(1); // Jika argumen yang diperlukan tidak ada, keluar dari program.
}
}
// Ekstrak nilai dari argumen yang telah diparsed.
$region = $options["region"];
$bucket = $options["bucket"];
// Muat 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 SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Atur penyedia kredensial.
$cfg->setRegion($region); // Atur wilayah tempat bucket berada.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]); // Jika titik akhir diberikan, atur titik akhir.
}
// Buat instance klien OSS.
$client = new Oss\Client($cfg);
// Buat objek GetBucketVersioningRequest untuk mengambil status pengendalian versi bucket.
$request = new Oss\Models\GetBucketVersioningRequest(
bucket: $bucket
);
// Jalankan operasi untuk mengambil status pengendalian versi bucket.
$result = $client->getBucketVersioning($request);
// Cetak hasil dari pengambilan status pengendalian versi.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP. Misalnya, 200 menunjukkan sukses.
'request id:' . $result->requestId . PHP_EOL . // ID permintaan, yang digunakan untuk debugging atau melacak permintaan.
'version status:' . $result->versioningConfiguration->status . PHP_EOL // Status pengendalian versi, seperti Diaktifkan, Ditangguhkan, atau string kosong.
);