Jika Anda tidak lagi menggunakan bucket Object Storage Service (OSS), Anda dapat menghapus bucket tersebut untuk mencegah biaya yang tidak perlu.
Catatan penggunaan
Kode contoh dalam topik ini menggunakan ID Wilayah
cn-hangzhoudari Wilayah Hangzhou, Tiongkok. Secara default, titik akhir publik digunakan untuk mengakses sumber daya di dalam bucket. Jika Anda ingin mengakses sumber daya di dalam bucket dengan menggunakan layanan Alibaba Cloud lainnya di wilayah yang sama dengan bucket tersebut, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir OSS, lihat Wilayah dan Titik Akhir.Nama bucket bersifat unik. Setelah bucket dihapus, nama tersebut menjadi tersedia untuk digunakan oleh orang lain. Kami menyarankan agar Anda mengosongkan bucket alih-alih menghapusnya jika Anda masih ingin menggunakan nama tersebut.
Bucket yang telah dihapus tidak dapat dipulihkan. Pastikan bahwa data di dalam bucket sudah tidak diperlukan sebelum Anda menghapus bucket. Jika Anda ingin terus menggunakan data di dalam bucket, cadangkan data tersebut terlebih dahulu. Untuk informasi lebih lanjut, lihat Cadangkan bucket.
Untuk menghapus bucket, Anda harus memiliki izin
oss:DeleteBucket. Untuk informasi lebih lanjut, lihat Lampirkan Kebijakan Kustom ke Pengguna RAM.
Prasyarat
Semua objek di dalam bucket dihapus.
PentingUntuk menghapus bucket yang memiliki versioning aktif, pastikan semua versi saat ini dan sebelumnya dari objek di dalam bucket dihapus. Untuk informasi lebih lanjut, lihat Versioning.
Jika bucket berisi sejumlah kecil objek, kami sarankan Anda menghapusnya secara manual. Untuk informasi lebih lanjut, lihat Hapus objek.
Jika bucket berisi sejumlah besar objek, kami sarankan Anda mengonfigurasi aturan siklus hidup untuk menghapus objek tersebut. Untuk informasi lebih lanjut, lihat Siklus hidup.
Bagian yang dihasilkan oleh tugas unggah multipart atau unggah yang dapat dilanjutkan di dalam bucket dihapus. Untuk informasi lebih lanjut, lihat Hapus bagian.
Izin
oss:DeleteBucketdiberikan kepada Pengguna RAM jika Anda ingin menggunakan Pengguna RAM untuk menghapus bucket. Untuk informasi lebih lanjut, lihat Lampirkan Kebijakan Kustom ke Pengguna RAM.CatatanJika Pengguna RAM memiliki izin
oss:DeleteBucketdalam kebijakan RAM tetapi tidak dapat menghapus bucket, kebijakan bucket mungkin berisi izinoss:DeleteBucketyang efeknya adalah Tolak. Dalam hal ini, Anda harus mengubah Tolak menjadi Izinkan atau menghapus kebijakan bucket. Kemudian, Anda dapat menghapus bucket.
Contoh
Berikut ini adalah kode contoh yang memberikan ilustrasi cara menghapus bucket:
<?php
require_once __DIR__ . '/../vendor/autoload.php'; // Memuat otomatis objek dan pustaka dependensi.
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan parameter baris perintah.
$optsdesc = [
"region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada. Contoh: oss-cn-hangzhou.
"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.
];
$longopts = \array_map(function ($key) {
return "$key:"; // Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));
// Analisis 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"; // Menentukan 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 informasi kredensial (AccessKey ID dan AccessKey secret).
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();
// Gunakan konfigurasi default SDK.
$cfg=Oss\Config::loadDefault(); // Muat konfigurasi default SDK.
$cfg->setCredentialsProvider($credentialsProvider); // Tentukan penyedia kredensial.
$cfg->setRegion($region); // Tentukan wilayah.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]); // Tentukan titik akhir jika titik akhir disediakan.
}
// Buat instance OSSClient.
$client = new Oss\Client($cfg);
// Buat permintaan untuk menghapus bucket.
$request = new Oss\Models\DeleteBucketRequest($bucket);
// Gunakan metode deleteBucket untuk menghapus bucket.
$result = $client->deleteBucket($request);
// Tampilkan hasil yang dikembalikan.
printf(
'kode status:' . $result-> statusCode. PHP_EOL . // Kode status respons HTTP.
'ID permintaan:' . $result->requestId // Pengenal unik untuk permintaan.
);
Referensi
Untuk kode contoh lengkap yang digunakan untuk menghapus bucket, kunjungi GitHub.
Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk menghapus bucket, lihat DeleteBucket.