Jika Anda tidak lagi menggunakan bucket Object Storage Service (OSS), Anda dapat menghapusnya untuk mencegah biaya yang tidak perlu.
Catatan
Kode contoh dalam topik ini menggunakan ID Wilayah
cn-hangzhoudari Wilayah China (Hangzhou). Secara default, titik akhir publik digunakan untuk mengakses sumber daya di bucket. Jika Anda ingin mengakses sumber daya di bucket dengan menggunakan layanan Alibaba Cloud lainnya dalam wilayah yang sama, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang Wilayah dan titik akhir OSS, lihat Wilayah dan Titik Akhir OSS.Dalam topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan Kredensial Akses.
Nama bucket harus unik. Setelah bucket dihapus, namanya menjadi tersedia untuk digunakan oleh orang lain. Kami menyarankan Anda untuk 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 penghapusan. Jika Anda ingin terus menggunakan data di dalam bucket, cadangkan data tersebut terlebih dahulu. Untuk informasi lebih lanjut, lihat Cadangkan Bucket.
Izin
oss:DeleteBucketdiperlukan untuk menghapus bucket. Untuk informasi lebih lanjut, lihat Menyambungkan Kebijakan Kustom ke Pengguna RAM.
Izin
Secara default, Akun Alibaba Cloud memiliki izin penuh. Pengguna RAM atau Peran RAM di bawah Akun Alibaba Cloud tidak memiliki izin apa pun secara default. Akun Alibaba Cloud atau administrator akun harus memberikan izin operasi melalui Kebijakan RAM atau Kebijakan Bucket.
API | Aksi | Definisi |
DeleteBucket |
| Menghapus bucket. |
Jika Pengguna RAM memiliki izin oss:DeleteBucket dalam Kebijakan RAM tetapi tidak dapat menghapus bucket, kebijakan bucket lain yang disambungkan ke Pengguna RAM mungkin berisi izin oss:DeleteBucket yang efeknya adalah Tolak. Dalam hal ini, Anda harus mengubah Tolak menjadi Izinkan atau menghapus kebijakan bucket sebelum Anda dapat menghapus bucket.
Prasyarat
Semua objek di dalam bucket dihapus.
PentingUntuk menghapus bucket yang memiliki versi, pastikan semua versi saat ini dan sebelumnya dari objek di dalam bucket dihapus. Untuk informasi lebih lanjut, lihat Versi.
Jika bucket berisi sejumlah kecil objek, kami sarankan Anda menghapusnya secara manual. Untuk informasi, lihat Hapus Objek.
Jika bucket berisi sejumlah besar objek, kami sarankan Anda mengonfigurasi aturan siklus hidup untuk menghapus objek. Untuk informasi, lihat Siklus Hidup.
Bagian yang dihasilkan oleh tugas unggah multi-bagian atau unggah yang dapat dilanjutkan di dalam bucket dihapus. Untuk informasi lebih lanjut, lihat Hapus Bagian.
Metode
func (c *Client) DeleteBucket(ctx context.Context, request *DeleteBucketRequest, optFns ...func(*Options)) (*DeleteBucketResult, error)Parameter permintaan
Parameter | Tipe | Deskripsi |
ctx | context.Context | Konteks permintaan, yang dapat digunakan untuk menentukan durasi total permintaan. |
request | *DeleteBucketRequest | Parameter operasi API tertentu. Untuk informasi, lihat DeleteBucketRequest. |
optFns | ...func(*Options) | Opsional. Parameter tingkat operasi. Untuk informasi lebih lanjut, lihat Options. |
Parameter tanggapan
Parameter | Tipe | Deskripsi |
result | *DeleteBucketResult | Tanggapan atas operasi. Parameter ini valid ketika nilai err adalah nil. Untuk informasi lebih lanjut, kunjungi DeleteBucketResult. |
err | error | Status permintaan. Jika permintaan gagal, nilai err bukan nil. |
Contoh kode
Berikut ini adalah contoh kode untuk menghapus bucket.
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
var (
region string
bucketName string
)
func init() {
// Tentukan parameter baris perintah untuk menentukan wilayah dan nama bucket.
flag.StringVar(®ion, "region", "", "Wilayah tempat bucket berada.")
flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}
func main() {
// Parsing parameter baris perintah.
flag.Parse()
// Periksa apakah nama bucket ditentukan.
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, nama bucket diperlukan")
}
// Periksa apakah wilayah ditentukan.
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, wilayah diperlukan")
}
// Muat konfigurasi default dan tentukan penyedia kredensial dan wilayah.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// Buat klien OSS.
client := oss.NewClient(cfg)
// Buat objek permintaan untuk penghapusan.
request := &oss.DeleteBucketRequest{
Bucket: oss.Ptr(bucketName),
}
// Panggil metode DeleteBucket.
result, err := client.DeleteBucket(context.TODO(), request)
if err != nil {
log.Fatalf("gagal menghapus bucket %v", err)
}
// Tampilkan hasilnya.
log.Printf("hasil penghapusan bucket:%#v\n", result)
}
Referensi
Untuk kode sampel lengkap yang digunakan untuk menghapus bucket, kunjungi Contoh GitHub.
Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk menghapus bucket, lihat DeleteBucket.