.NET ile blob kapsayıcılarını listeleme
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 bir dizi seçenek belirtebilirsiniz. Bu makalede. .NET için Azure Depolama istemci kitaplığını kullanarak kapsayıcıları listeleme adımları gösterilmektedir.
Önkoşullar
- Azure aboneliği - ücretsiz bir abonelik oluşturun
- Azure depolama hesabı - depolama hesabı oluşturma
- İşletim sisteminiz için en son .NET SDK'sı . Çalışma zamanını değil SDK'yi aldığınızdan emin olun.
Ortamınızı ayarlama
Var olan bir projeniz yoksa, bu bölümde bir projenin .NET için Azure Blob Depolama istemci kitaplığıyla çalışacak şekilde nasıl ayarlanacağı gösterilir. Adımlar arasında paket yükleme, yönergeler ekleme using
ve yetkili istemci nesnesi oluşturma yer alır. Ayrıntılar için bkz. Azure Blob Depolama ve .NET'i kullanmaya başlama.
Paketleri yükleme
Proje dizininizden komutunu kullanarak dotnet add package
Azure Blob Depolama ve Azure Identity istemci kitaplıkları için paketleri yükleyin. Azure hizmetlerine parolasız bağlantılar için Azure.Identity paketi gereklidir.
dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity
Yönerge ekleme using
Kod dosyanızın en üstüne şu using
yönergeleri ekleyin:
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
Bu makaledeki bazı kod örnekleri için ek using
yönergeler gerekebilir.
İstemci nesnesi oluşturma
Bir uygulamayı Blob Depolama'ya bağlamak için bir BlobServiceClient örneği oluşturun. Aşağıdaki örnekte yetkilendirme için kullanarak DefaultAzureCredential
bir istemci nesnesinin nasıl oluşturulacağı gösterilmektedir:
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
Bir .NET uygulamasına bağımlılık ekleme için bir hizmet istemcisi kaydedebilirsiniz.
Ayrıca, belirli kapsayıcılar veya bloblar için istemci nesneleri de oluşturabilirsiniz. İstemci nesneleri oluşturma ve yönetme hakkında daha fazla bilgi edinmek için bkz . Veri kaynaklarıyla etkileşim kuran istemci nesneleri oluşturma ve yönetme.
Yetkilendirme
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 Verileri Katkıda Bulunanı veya üzeri gerekir. Daha fazla bilgi edinmek için Bkz. Liste Kapsayıcıları (REST API) için yetkilendirme kılavuzu.
Kapsayıcı 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ınızdaki kapsayıcıları listelemek için aşağıdaki yöntemlerden birini çağırın:
Bu yöntemler BlobContainerItem nesnelerinin listesini döndürür. Kapsayıcılar ada göre sözcük temelli olarak sıralanır.
Kaç sonuç döndürülür yönetme
Varsayılan olarak, bir listeleme işlemi bir kerede en çok 5000 sonuç döndürür, ancak her listeleme işleminin döndürmesini istediğiniz sonuç sayısını belirtebilirsiniz. Bu makalede sunulan örnekler, sonuçları sayfalarda nasıl döndürebileceğinizi gösterir. Sayfalandırma kavramları hakkında daha fazla bilgi edinmek için bkz . .NET için Azure SDK ile sayfalandırma.
Sonuçları ön ek ile filtreleme
Kapsayıcı listesini filtrelemek için parametresi için prefix
bir dize 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 BlobContainerTraits sabit listesi değerini belirtinMetadata
. 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 eklemek için BlobContainerStates sabit listesi değerini belirtinDeleted
.
Kod örneği: Kapsayıcıları listeleme
Aşağıdaki örnek, belirtilen ön ek ile başlayan bir depolama hesabındaki kapsayıcıları zaman uyumsuz olarak listeler. Örnek, belirtilen ön ek ile başlayan kapsayıcıları listeler ve listeleme işlemine yapılan çağrı başına belirtilen sayıda sonuç döndürür. Daha sonra bir sonraki sonuç kesimini almak için devamlılık belirtecini kullanır. Örnek ayrıca sonuçları içeren kapsayıcı meta verilerini döndürür.
async static Task ListContainers(BlobServiceClient blobServiceClient,
string prefix,
int? segmentSize)
{
try
{
// Call the listing operation and enumerate the result segment.
var resultSegment =
blobServiceClient.GetBlobContainersAsync(BlobContainerTraits.Metadata, prefix, default)
.AsPages(default, segmentSize);
await foreach (Azure.Page<BlobContainerItem> containerPage in resultSegment)
{
foreach (BlobContainerItem containerItem in containerPage.Values)
{
Console.WriteLine("Container name: {0}", containerItem.Name);
}
Console.WriteLine();
}
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
throw;
}
}
Kaynaklar
.NET için Azure Blob Depolama istemci kitaplığını kullanarak kapsayıcıları listeleme hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın.
REST API işlemleri
.NET için Azure SDK, Azure REST API'sinin üzerinde derlenmiş kitaplıklar içerir ve tanıdık .NET 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 kitaplığı kaynakları
Ayrıca bkz.
İlgili içerik
- Bu makale, .NET için Blob Depolama geliştirici kılavuzunun bir parçasıdır. Daha fazla bilgi edinmek için .NET uygulamanızı derleme makalelerinde geliştirici kılavuzu makalelerinin tam listesine bakın.