Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir Azure Depolama hesabındaki kapsayıcıları kodunuzdan listelediğinizde, sonuçların Azure Depolama'dan nasıl döndürüleceğini yönetmek için çeşitli seçenekler belirtebilirsiniz. Bu makalede Go için Azure Depolama istemci modülünü kullanarak kapsayıcıları listeleme adımları gösterilmektedir.
Prerequisites
- Azure aboneliği - ücretsiz bir abonelik oluşturun
- Azure depolama hesabı - depolama hesabı oluşturma
- Go 1.18+
Ortamınızı ayarlama
Mevcut bir projeniz yoksa, bu bölümde Go için Azure Blob Depolama istemci modülüyle çalışmak üzere bir projenin nasıl ayarlanacağı gösterilir. Adımlar arasında modül yüklemesi, yol ekleme import ve yetkili istemci nesnesi oluşturma yer alır. Ayrıntılar için Azure Blob Depolama ve Go ile çalışmaya başlama bölümüne bakın.
Modülleri yükleme
Aşağıdaki komutu kullanarak azblob modülünü yükleyin:
go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob
Microsoft Entra Id ile kimlik doğrulaması yapmak için (önerilen), aşağıdaki komutu kullanarak modülü yükleyin azidentity :
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
İçeri aktarma yolları ekleme
Kod dosyanıza aşağıdaki içeri aktarma yollarını ekleyin:
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
Bu ithalat yolları, başlamak için gereken en az gereksinimi temsil eder. Bu makaledeki bazı kod örnekleri için ek içeri aktarma yolları gerekebilir. Belirli ayrıntılar ve örnek kullanım için bkz . Kod örnekleri.
İstemci nesnesi oluşturma
Bir uygulamayı Blob Depolama'ya bağlamak için azblob kullanarak bir istemci nesnesi oluşturun. NewClient. Aşağıdaki örnekte yetkilendirme için kullanarak DefaultAzureCredential bir istemci nesnesinin nasıl oluşturulacağı gösterilmektedir:
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
Yetkilendirme mekanizması, blob kapsayıcılarını listelemek için gerekli izinlere sahip olmalıdır. Microsoft Entra ID ile yetkilendirme için (önerilir), Azure RBAC yerleşik rolü Depolama Blob Veri Katkıcısı veya üzeri gerekir. Daha fazla bilgi edinmek için Bkz. Liste Kapsayıcıları (REST API) için yetkilendirme kılavuzu.
Container listeleme seçenekleri hakkında
Kodunuzdaki kapsayıcıları listelerken, sonuçların Azure Depolama'dan nasıl döndürüleceğini yönetmek için seçenekler belirtebilirsiniz. Her sonuç kümesinde döndürülecek sonuç sayısını belirtebilir ve ardından sonraki kümeleri alabilirsiniz. Ayrıca sonuçları bir ön eke göre filtreleyebilir ve sonuçları içeren kapsayıcı meta verilerini döndürebilirsiniz. Bu seçenekler aşağıdaki bölümlerde açıklanmıştır.
Depolama hesabındaki kapsayıcıları listelemek için aşağıdaki yöntemi çağırın:
Bu yöntem, uygulamanızın bir kerede bir sonuç sayfasını işlemesini sağlayan bir Pager döndürür. Kapsayıcılar, isimlerine göre sözlük sırasına göre sıralanır.
ListContainersOptions yapısını kullanarak kapsayıcıları listeleme seçeneklerini belirtebilirsiniz. Bu yapı sonuç sayısını yönetme, ön eke göre filtreleme ve ListContainersInclude kullanarak kapsayıcı bilgilerini dahil etme alanlarını içerir.
Sonuçların kaç tane döndürüleceğini yönetme
Varsayılan olarak, bir listeleme işlemi aynı anda en fazla 5.000 sonuç döndürür. Daha küçük bir sonuç kümesi döndürmek için MaxResults yapısındaki alan için sıfır olmayan bir değer sağlayın.
Sonuçları ön ek ile filtreleme
Kapsayıcı listesini filtrelemek için Prefix alan için bir dize veya karakter belirtin. Ön ek dizesi bir veya daha fazla karakter içerebilir. Azure Depolama daha sonra yalnızca adları bu ön ek ile başlayan kapsayıcıları döndürür.
Kapsayıcı meta verilerini dahil et
Sonuçlara kapsayıcı meta verilerini eklemek için, Metadata alanını true olarak ayarlayın, ListContainersInclude öğesinin bir parçası olarak. Azure Depolama, döndürülen her kapsayıcıyla meta veriler içerdiğinden kapsayıcı meta verilerini ayrı olarak getirmeniz gerekmez.
Silinen kapsayıcıları dahil et
Geçici olarak silinen kapsayıcıları sonuçlara dahil etmek için
Kod örnekleri
Aşağıdaki örnekte tüm kapsayıcılar ve meta veriler listelanmaktadır:
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)
}
}
}
}
Aşağıdaki örnekte yalnızca belirtilen ön ek ile başlayan kapsayıcılar listelenir:
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)
}
}
}
Sayfa başına sonuç sayısı için bir sınır da belirtebilirsiniz.
MaxResults için bir değer iletip sonuçları sayfalandıran bir örnek:
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)
}
}
}
Note
Bu kılavuzdaki kod örnekleri, Azure Blob Depolama ve Go ile çalışmaya başlamanıza yardımcı olmak için tasarlanmıştır. Hata işlemeyi ve Context değerleri uygulamanızın gereksinimlerini karşılayacak şekilde değiştirmeniz gerekir.
Resources
Go için Azure Blob Depolama istemci modülünü kullanarak kapsayıcıları listeleme hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın.
Kod örnekleri
- Bu makaledeki kod örneklerini görüntüleyin (GitHub)
REST API işlemleri
Go için Azure SDK, Azure REST API'sinin üzerinde derlenmiş kitaplıklar içerir ve tanıdık Go paradigmalarıyla REST API işlemleriyle etkileşim kurmanızı sağlar. Kapsayıcıları listelemek için istemci kitaplığı yöntemleri aşağıdaki REST API işlemini kullanır:
- Liste Kapsayıcıları (REST API)
İstemci modülü kaynakları
Ayrıca bakınız
İlgili içerik
- Bu makale, Go için Blob Depolama geliştirici kılavuzunun bir parçasıdır. Daha fazla bilgi edinmek için Go uygulamanızı geliştirin bölümündeki geliştirici kılavuzu makalelerinin tam listesine bakın.