Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini memperlihatkan cara menghapus kontainer dengan modul klien Azure Storage untuk Go. Jika Anda telah mengaktifkan penghapusan sementara kontainer, Anda dapat memulihkan kontainer yang dihapus.
Prerequisites
- Langganan Azure - buat akun secara gratis
- Akun penyimpanan Azure - buat akun penyimpanan
- Go 1.18+
Atur lingkungan Anda
Jika Anda tidak memiliki proyek yang sudah ada, bagian ini memperlihatkan cara menyiapkan proyek untuk bekerja dengan modul klien Azure Blob Storage untuk Go. Langkah-langkahnya termasuk penginstalan modul, menambahkan path import, dan membuat objek klien yang diotorisasi. Untuk detailnya, lihat Mulai menggunakan Azure Blob Storage dan Go.
Menginstal modul
Instal modul azblob menggunakan perintah berikut:
go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob
Untuk mengautentikasi dengan MICROSOFT Entra ID (disarankan), instal azidentity modul menggunakan perintah berikut:
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
Menambahkan jalur impor
Dalam file kode Anda, tambahkan jalur impor berikut:
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
Jalur impor ini mewakili minimum yang diperlukan untuk memulai. Beberapa contoh kode dalam artikel ini mungkin memerlukan jalur impor tambahan. Untuk detail tertentu dan contoh penggunaan, lihat Sampel kode.
Membuat objek klien
Untuk menyambungkan aplikasi ke Blob Storage, buat objek klien menggunakan azblob. NewClient. Contoh berikut menunjukkan cara membuat objek klien menggunakan DefaultAzureCredential untuk otorisasi:
func getServiceClientTokenCredential(accountURL string) *azblob.Client {
// Create a new service client with token credential
credential, err := azidentity.NewDefaultAzureCredential(nil)
handleError(err)
client, err := azblob.NewClient(accountURL, credential, nil)
handleError(err)
return client
}
Authorization
Mekanisme otorisasi harus memiliki izin yang diperlukan untuk menghapus atau memulihkan kontainer. Untuk otorisasi dengan Microsoft Entra ID (disarankan), Anda memerlukan peran bawaan Azure RBAC Storage Blob Data Contributor atau yang lebih tinggi. Untuk mempelajari lebih lanjut, lihat panduan otorisasi untuk Hapus Kontainer (REST API) dan Pulihkan Kontainer (REST API).
Hapus sebuah kontainer
Untuk menghapus kontainer, panggil metode berikut:
Setelah menghapus kontainer, Anda tidak dapat membuat wadah dengan nama yang sama setidaknya selama 30 detik. Mencoba membuat kontainer dengan nama yang sama gagal dengan kode 409 (Conflict) kesalahan HTTP. Operasi lain pada kontainer atau blob yang dikandungnya gagal dengan kode 404 (Not Found)kesalahan HTTP .
Contoh berikut menunjukkan cara menghapus kontainer tertentu:
func deleteContainer(client *azblob.Client, containerName string) {
// Delete the container
_, err := client.DeleteContainer(context.TODO(), containerName, nil)
handleError(err)
}
Memulihkan kontainer yang dihapus
Saat penghapusan sementara kontainer diaktifkan untuk akun penyimpanan, kontainer yang dihapus dan kontennya dapat dipulihkan dalam periode retensi tertentu. Untuk mempelajari selengkapnya tentang penghapusan sementara kontainer, lihat Mengaktifkan dan mengelola penghapusan sementara untuk kontainer. Anda dapat memulihkan kontainer yang dihapus sementara dengan memanggil metode berikut dari ServiceClient yang disematkan untuk objek klien:
Contoh berikut mencantumkan kontainer, termasuk kontainer yang dihapus sementara, dan memproses daftar tersebut untuk memulihkan kontainer yang dihapus sementara tertentu.
func restoreDeletedContainer(client *azblob.Client, containerName string) {
// List containers, included deleted ones
pager := client.NewListContainersPager(&azblob.ListContainersOptions{
Include: azblob.ListContainersInclude{Deleted: true},
})
for pager.More() {
resp, err := pager.NextPage(context.TODO())
handleError(err)
for _, container := range resp.ContainerItems {
if *container.Name == containerName && *container.Deleted {
// Restore the deleted container
_, err := client.ServiceClient().RestoreContainer(context.TODO(), containerName, *container.Version, nil)
handleError(err)
}
}
}
}
Note
Sampel kode dalam panduan ini dimaksudkan untuk membantu Anda mulai menggunakan Azure Blob Storage dan Go. Anda harus mengubah penanganan kesalahan dan Context nilai untuk memenuhi kebutuhan aplikasi Anda.
Resources
Untuk mempelajari selengkapnya tentang menghapus kontainer menggunakan modul klien Azure Blob Storage untuk Go, lihat sumber daya berikut ini.
Sampel kode
- Menampilkan sampel kode dari artikel ini (GitHub)
Operasi REST API
Azure SDK for Go berisi pustaka yang dibangun di atas Azure REST API, memungkinkan Anda berinteraksi dengan operasi REST API melalui paradigma Go yang sudah dikenal. Metode pustaka klien untuk menghapus atau memulihkan kontainer menggunakan operasi REST API berikut:
- Hapus Kontainer (REST API)
- Pulihkan Kontainer (REST API)
Sumber daya modul klien
Lihat juga
Konten terkait
- Artikel ini adalah bagian dari panduan pengembang Blob Storage untuk Go. Untuk mempelajari lebih lanjut, lihat daftar lengkap artikel panduan pengembang di Membangun aplikasi Go Anda.