全部产品
Search
文档中心

Object Storage Service:Menghapus bucket menggunakan OSS SDK untuk PHP 2.0

更新时间:Aug 07, 2025

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-hangzhou dari 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.

    Penting

    Untuk 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:DeleteBucket diberikan kepada Pengguna RAM jika Anda ingin menggunakan Pengguna RAM untuk menghapus bucket. Untuk informasi lebih lanjut, lihat Lampirkan Kebijakan Kustom ke Pengguna RAM.

    Catatan

    Jika Pengguna RAM memiliki izin oss:DeleteBucket dalam kebijakan RAM tetapi tidak dapat menghapus bucket, kebijakan bucket mungkin berisi izin oss:DeleteBucket yang 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.