Mencantumkan kontainer blob dengan Go
Saat Anda mencantumkan kontainer di akun Azure Storage dari kode, Anda dapat menentukan beberapa opsi untuk mengelola bagaimana hasil dikembalikan dari Azure Storage. Artikel ini memperlihatkan cara mencantumkan kontainer menggunakan modul klien Azure Storage untuk Go.
Prasyarat
- Langganan Azure - buat akun secara gratis
- Akun penyimpanan Azure - buat akun penyimpanan
- Go 1.18+
Menyiapkan 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 import
jalur, dan membuat objek klien resmi. 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 mencantumkan kontainer blob. Untuk otorisasi dengan MICROSOFT Entra ID (disarankan), Anda memerlukan peran bawaan Azure RBAC Kontributor Data Blob Penyimpanan atau yang lebih tinggi. Untuk mempelajari lebih lanjut, lihat panduan otorisasi untuk Kontainer Daftar (REST API).
Tentang opsi daftar kontainer
Saat mencantumkan kontainer dari kode, Anda dapat menentukan opsi untuk mengelola bagaimana hasil dikembalikan dari Azure Storage. Anda dapat menentukan jumlah hasil yang akan dikembalikan di setiap set hasil, lalu mengambil set berikutnya. Anda juga dapat memfilter hasil dengan awalan, dan mengembalikan metadata kontainer dengan hasilnya. Opsi ini dijelaskan di bagian berikut.
Untuk mencantumkan kontainer di akun penyimpanan, panggil metode berikut:
Metode ini mengembalikan Pager, yang memungkinkan aplikasi Anda memproses satu halaman hasil pada satu waktu. Kontainer diurutkan secara leksikografis berdasarkan nama.
Anda dapat menentukan opsi untuk mencantumkan kontainer dengan menggunakan struktur ListContainersOptions . Struktur ini mencakup bidang untuk mengelola jumlah hasil, pemfilteran berdasarkan awalan, dan termasuk informasi kontainer menggunakan ListContainersInclude.
Mengelola berapa banyak hasil yang dikembalikan
Secara default, operasi daftar mengembalikan hingga 5.000 hasil pada satu waktu. Untuk mengembalikan serangkaian hasil yang lebih kecil, berikan nilai bukan nol untuk MaxResults
bidang di struktur ListContainersOptions .
Memfilter hasil dengan prefiks
Untuk memfilter daftar kontainer, tentukan string atau karakter untuk Prefix
bidang di ListContainersOptions. String awalan dapat menyertakan satu atau lebih karakter. Azure Storage kemudian mengembalikan kontainer yang namanya dimulai dengan prefiks tersebut saja.
Sertakan metadata kontainer
Untuk menyertakan metadata kontainer dengan hasil, atur Metadata
bidang ke true
sebagai bagian dari ListContainersInclude. Azure Storage menyertakan metadata dengan setiap kontainer yang dikembalikan, sehingga Anda tidak perlu mengambil metadata kontainer secara terpisah.
Sertakan kontainer yang dihapus
Untuk menyertakan kontainer yang dihapus sementara dengan hasilnya, atur Deleted
bidang ke true
sebagai bagian dari ListContainersInclude.
Contoh kode
Contoh berikut mencantumkan semua kontainer dan metadata:
func listContainers(client *azblob.Client) {
// List the containers in the storage account and include metadata
pager := client.NewListContainersPager(&azblob.ListContainersOptions{
Include: azblob.ListContainersInclude{Metadata: true},
})
for pager.More() {
resp, err := pager.NextPage(context.TODO())
handleError(err)
for _, container := range resp.ContainerItems {
fmt.Println(*container.Name)
for k, v := range container.Metadata {
fmt.Printf("%v: %v\n", k, *v)
}
}
}
}
Contoh berikut hanya mencantumkan kontainer yang dimulai dengan awalan yang ditentukan:
func listContainersWithPrefix(client *azblob.Client, prefix string) {
// List the containers in the storage account with a prefix
pager := client.NewListContainersPager(&azblob.ListContainersOptions{
Prefix: &prefix,
})
for pager.More() {
resp, err := pager.NextPage(context.TODO())
handleError(err)
for _, container := range resp.ContainerItems {
fmt.Println(*container.Name)
}
}
}
Anda juga dapat menentukan batas jumlah hasil per halaman. Contoh ini meneruskan nilai untuk MaxResults
dan mem-paginate hasilnya:
func listContainersWithMaxResults(client *azblob.Client, maxResults int32) {
// List the containers in the storage account with a maximum number of results
pager := client.NewListContainersPager(&azblob.ListContainersOptions{
MaxResults: &maxResults,
})
i := 0
for pager.More() {
resp, err := pager.NextPage(context.TODO())
handleError(err)
// Show page number to demonstrate pagination with max results
i++
fmt.Printf("Page %d:\n", i)
for _, container := range resp.ContainerItems {
fmt.Println(*container.Name)
}
}
}
Catatan
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.
Sumber
Untuk mempelajari selengkapnya tentang mencantumkan 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 mencantumkan kontainer menggunakan operasi REST API berikut:
- Daftar 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.