Anda dapat mengonfigurasi kebijakan retensi berbasis waktu untuk bucket Object Storage Service (OSS). Kebijakan retensi memiliki periode retensi mulai dari 1 hari hingga 70 tahun. Topik ini menjelaskan cara membuat, menanyakan, mengunci, dan membatalkan kebijakan retensi.
Catatan penggunaan
Contoh kode dalam topik ini menggunakan ID wilayah
cn-hangzhouuntuk Wilayah China (Hangzhou). Secara default, titik akhir publik digunakan. Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang pemetaan antara wilayah OSS dan titik akhir, lihat Wilayah dan Titik Akhir.Dalam topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan Kredensial Akses.
Contoh
Buat kebijakan retensi
Bucket tidak dapat memiliki versi dan kebijakan retensi yang dikonfigurasi pada saat bersamaan. Oleh karena itu, sebelum Anda membuat kebijakan retensi untuk bucket, pastikan bahwa versi tidak diaktifkan untuk bucket tersebut.
Contoh kode berikut memberikan contoh cara membuat kebijakan retensi:
<?php
// Masukkan file autoload untuk memuat pustaka dependen.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan deskripsi untuk parameter baris perintah.
$optsdesc = [
"region" => ['help' => Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
"endpoint" => ['help' => Nama domain yang dapat digunakan layanan lain untuk mengakses OSS', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan oleh layanan lain untuk mengakses OSS.
"bucket" => ['help' => Nama bucket, 'required' => True], // (Diperlukan) Tentukan nama bucket.
];
// Hasilkan daftar opsi panjang untuk mengurai parameter baris perintah.
$longopts = \array_map(function ($key) {
return "$key:"; // Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));
// Uraikan parameter baris perintah.
$options = getopt("", $longopts);
// Periksa apakah parameter yang diperlukan telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: argumen berikut diperlukan: --$key, $help"; // Tentukan bahwa parameter yang diperlukan belum dikonfigurasi.
exit(1);
}
}
// Dapatkan nilai parameter baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
// Gunakan variabel lingkungan untuk memuat ID AccessKey dan Rahasia AccessKey.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();
// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
// Tentukan penyedia kredensial.
$cfg->setCredentialsProvider($credentialsProvider);
// Tentukan wilayah.
$cfg->setRegion($region);
// Tentukan titik akhir jika titik akhir disediakan.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]);
}
// Buat instance OSSClient.
$client = new Oss\Client($cfg);
// Buat objek InitiateBucketWormRequest untuk membuat kebijakan retensi untuk bucket dan atur periode retensi kebijakan retensi menjadi tiga hari.
$request = new Oss\Models\InitiateBucketWormRequest(
bucket: $bucket,
initiateWormConfiguration: new Oss\Models\InitiateWormConfiguration(
retentionPeriodInDays: 3 // Atur periode retensi menjadi tiga hari.
));
// Gunakan metode initiateBucketWorm untuk membuat kebijakan retensi untuk bucket.
$result = $client->initiateBucketWorm($request);
// Tampilkan hasil yang dikembalikan.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP yang dikembalikan.
'request id:' . $result->requestId . PHP_EOL . // ID permintaan dari permintaan, yang merupakan pengenal unik dari permintaan.
'worm id:' . $result->wormId // ID kebijakan retensi.
);
Batalkan kebijakan retensi yang tidak terkunci
Contoh kode berikut memberikan contoh cara membatalkan kebijakan retensi yang tidak terkunci:
<?php
// Masukkan file autoload untuk memuat pustaka dependen.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan deskripsi untuk parameter baris perintah.
$optsdesc = [
"region" => ['help' => Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
"endpoint" => ['help' => Nama domain yang dapat digunakan layanan lain untuk mengakses OSS', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan oleh layanan lain untuk mengakses OSS.
"bucket" => ['help' => Nama bucket, 'required' => True], // (Diperlukan) Tentukan nama bucket.
];
// Hasilkan daftar opsi panjang untuk mengurai parameter baris perintah.
$longopts = \array_map(function ($key) {
return "$key:"; // Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));
// Uraikan parameter baris perintah.
$options = getopt("", $longopts);
// Periksa apakah parameter yang diperlukan telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: argumen berikut diperlukan: --$key, $help"; // Tentukan bahwa parameter yang diperlukan belum dikonfigurasi.
exit(1);
}
}
// Dapatkan nilai parameter baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
// Gunakan variabel lingkungan untuk memuat ID AccessKey dan Rahasia AccessKey.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();
// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
// Tentukan penyedia kredensial.
$cfg->setCredentialsProvider($credentialsProvider);
// Tentukan wilayah.
$cfg->setRegion($region);
// Tentukan titik akhir jika titik akhir disediakan.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]);
}
// Buat instance OSSClient.
$client = new Oss\Client($cfg);
// Buat objek AbortBucketWormRequest untuk membatalkan kebijakan retensi yang tidak terkunci dari bucket.
$request = new Oss\Models\AbortBucketWormRequest(bucket: $bucket);
// Gunakan metode abortBucketWorm untuk membatalkan kebijakan retensi yang tidak terkunci dari bucket.
$result = $client->abortBucketWorm($request);
// Tampilkan hasil yang dikembalikan.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP yang dikembalikan.
'request id:' . $result->requestId // ID permintaan dari permintaan, yang merupakan pengenal unik dari permintaan.
);
Kueri kebijakan retensi
Contoh kode berikut memberikan contoh cara menanyakan kebijakan retensi:
<?php
// Masukkan file autoload untuk memuat pustaka dependen.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan deskripsi untuk parameter baris perintah.
$optsdesc = [
"region" => ['help' => Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
"endpoint" => ['help' => Nama domain yang dapat digunakan layanan lain untuk mengakses OSS', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan oleh layanan lain untuk mengakses OSS.
"bucket" => ['help' => Nama bucket, 'required' => True], // (Diperlukan) Tentukan nama bucket.
"worm-id" => ['help' => 'ID worm dari bucket', 'required' => True], // (Diperlukan) Tentukan ID kebijakan retensi.
];
// Hasilkan daftar opsi panjang untuk mengurai parameter baris perintah.
$longopts = \array_map(function ($key) {
return "$key:"; // Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));
// Uraikan parameter baris perintah.
$options = getopt("", $longopts);
// Periksa apakah parameter yang diperlukan telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: argumen berikut diperlukan: --$key, $help"; // Tentukan bahwa parameter yang diperlukan belum dikonfigurasi.
exit(1);
}
}
// Dapatkan nilai parameter baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
$wormId = $options["worm-id"]; // ID kebijakan retensi.
// Gunakan variabel lingkungan untuk memuat ID AccessKey dan Rahasia AccessKey.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();
// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
// Tentukan penyedia kredensial.
$cfg->setCredentialsProvider($credentialsProvider);
// Tentukan wilayah.
$cfg->setRegion($region);
// Tentukan titik akhir jika titik akhir disediakan.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]);
}
// Buat instance OSSClient.
$client = new Oss\Client($cfg);
// Buat objek GetBucketWormRequest untuk menanyakan kebijakan retensi dari bucket.
$request = new Oss\Models\GetBucketWormRequest(bucket: $bucket);
// Gunakan metode getBucketWorm untuk menanyakan kebijakan retensi dari bucket.
$result = $client->getBucketWorm($request);
// Tampilkan hasil yang dikembalikan.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP yang dikembalikan.
'request id:' . $result->requestId . PHP_EOL . // ID permintaan dari permintaan, yang merupakan pengenal unik dari permintaan.
'worm config:' . var_export($result->wormConfiguration, true) // Konfigurasi kebijakan retensi.
);
Perpanjang periode retensi kebijakan retensi
Contoh kode berikut memberikan contoh cara memperpanjang periode retensi kebijakan retensi:
<?php
// Masukkan file autoload untuk memuat pustaka dependen.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan deskripsi untuk parameter baris perintah.
$optsdesc = [
"region" => ['help' => Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
"endpoint" => ['help' => Nama domain yang dapat digunakan layanan lain untuk mengakses OSS', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan oleh layanan lain untuk mengakses OSS.
"bucket" => ['help' => Nama bucket, 'required' => True], // (Diperlukan) Tentukan nama bucket.
"worm-id" => ['help' => 'ID worm dari bucket', 'required' => True], // (Diperlukan) Tentukan ID kebijakan retensi.
];
// Hasilkan daftar opsi panjang untuk mengurai parameter baris perintah.
$longopts = \array_map(function ($key) {
return "$key:"; // Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));
// Uraikan parameter baris perintah.
$options = getopt("", $longopts);
// Periksa apakah parameter yang diperlukan telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: argumen berikut diperlukan: --$key, $help"; // Tentukan bahwa parameter yang diperlukan belum dikonfigurasi.
exit(1);
}
}
// Dapatkan nilai parameter baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
$wormId = $options["worm-id"]; // ID kebijakan retensi.
// Gunakan variabel lingkungan untuk memuat ID AccessKey dan Rahasia AccessKey.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();
// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
// Tentukan penyedia kredensial.
$cfg->setCredentialsProvider($credentialsProvider);
// Tentukan wilayah.
$cfg->setRegion($region);
// Tentukan titik akhir jika titik akhir disediakan.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]);
}
// Buat instance OSSClient.
$client = new Oss\Client($cfg);
// Buat objek ExtendBucketWormRequest untuk memperpanjang kebijakan retensi bucket menjadi tiga hari.
$request = new Oss\Models\ExtendBucketWormRequest(
bucket: $bucket,
wormId: $wormId,
extendWormConfiguration: new Oss\Models\ExtendWormConfiguration(
retentionPeriodInDays: 3 // Perpanjang kebijakan retensi bucket menjadi tiga hari.
));
// Gunakan metode extendBucketWorm untuk memperpanjang kebijakan retensi bucket.
$result = $client->extendBucketWorm($request);
// Tampilkan hasil yang dikembalikan.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP yang dikembalikan.
'request id:' . $result->requestId // ID permintaan dari permintaan, yang merupakan pengenal unik dari permintaan.
);
Referensi
Untuk informasi lebih lanjut tentang cara membuat kebijakan retensi, lihat InitiateBucketWorm.
Untuk informasi lebih lanjut tentang cara menghapus kebijakan retensi yang tidak terkunci, lihat AbortBucketWorm.
Untuk informasi lebih lanjut tentang cara menanyakan kebijakan retensi, lihat GetBucketWorm.
Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk memperpanjang periode retensi kebijakan retensi, lihat ExtendBucketWorm.