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, Python için Azure Depolama istemci kitaplığını kullanarak kapsayıcıları listeleme adımları gösterilmektedir.
Zaman uyumsuz API'leri kullanarak blob kapsayıcılarını listeleme hakkında bilgi edinmek için bkz . Kapsayıcıları zaman uyumsuz olarak listeleme.
Önkoşullar
- Azure aboneliği - ücretsiz bir abonelik oluşturun
- Azure depolama hesabı - depolama hesabı oluşturma
- Python 3.8+
Ortamınızı ayarlama
Mevcut bir projeniz yoksa, bu bölümde Python için Azure Blob Depolama istemci kitaplığıyla çalışmak üzere bir projenin nasıl ayarlanacağı gösterilir. Diğer ayrıntılar için bkz. Azure Blob Depolama ve Python'ı kullanmaya başlama.
Bu makaledeki kod örnekleriyle çalışmak için projenizi ayarlamak için bu adımları izleyin.
Paketleri yükleme
kullanarak pip installaşağıdaki paketleri yükleyin:
pip install azure-storage-blob azure-identity
import deyimlerini ekle
Aşağıdaki import deyimlerini ekleyin:
from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient
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.
İ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:
# TODO: Replace <storage-account-name> with your actual storage account name
account_url = "https://<storage-account-name>.blob.core.windows.net"
credential = DefaultAzureCredential()
# Create the BlobServiceClient object
blob_service_client = BlobServiceClient(account_url, credential=credential)
Ayrıca, belirli kapsayıcılar veya bloblar için doğrudan veya BlobServiceClient nesnesinden istemci nesneleri 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.
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ındaki kapsayıcıları listelemek için aşağıdaki yöntemi çağırın:
Bu yöntem ContainerProperties türünde bir yinelenebilir döndürür. Kapsayıcılar ada göre alfabetik olarak sıralanır.
Dönen sonuçların sayısını yönetme
Varsayılan olarak, bir listeleme işlemi aynı anda en fazla 5000 sonuç döndürür. Daha küçük bir sonuç kümesi döndürmek için anahtar sözcük bağımsız değişkeni için results_per_page sıfır olmayan bir değer sağlayın.
Sonuçları ön ek ile filtreleme
Kapsayıcı listesini filtrelemek için anahtar sözcük bağımsız değişkeni için name_starts_with 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 anahtar sözcük bağımsız değişkenini include_metadata olarak Trueayarlayın. 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 include_deleted anahtar sözcük bağımsız değişkenini True olarak ayarlayın.
Kod örnekleri
Aşağıdaki örnekte tüm kapsayıcılar ve meta veriler listelanmaktadır. Kapsayıcı meta verilerini include_metadata öğesini True olarak ayarlayarak ekleyebilirsiniz.
def list_containers(self, blob_service_client: BlobServiceClient):
containers = blob_service_client.list_containers(include_metadata=True)
for container in containers:
print(container['name'], container['metadata'])
Aşağıdaki örnekte yalnızca parametresinde name_starts_with belirtilen bir ön ek ile başlayan kapsayıcılar listelenir:
def list_containers_prefix(self, blob_service_client: BlobServiceClient):
containers = blob_service_client.list_containers(name_starts_with='test-')
for container in containers:
print(container['name'])
Sayfa başına sonuç sayısı için bir sınır da belirtebilirsiniz. Bu örnek, results_per_page olarak geçirir ve sonuçları sayfalandırır.
def list_containers_pages(self, blob_service_client: BlobServiceClient):
i=0
all_pages = blob_service_client.list_containers(results_per_page=5).by_page()
for container_page in all_pages:
i += 1
print(f"Page {i}")
for container in container_page:
print(container['name'])
Kapsayıcıları zaman uyumsuz olarak listeleme
Python için Azure Blob Depolama istemci kitaplığı, kapsayıcıları zaman uyumsuz olarak listelemeyi destekler. Proje kurulum gereksinimleri hakkında daha fazla bilgi edinmek için bkz . Zaman uyumsuz programlama.
Zaman uyumsuz API'leri kullanarak kapsayıcıları listelemek için şu adımları izleyin:
Aşağıdaki import ifadelerini ekleyin:
import asyncio from azure.identity.aio import DefaultAzureCredential from azure.storage.blob.aio import BlobServiceClientkullanarak
asyncio.runprogramı çalıştırmak için kod ekleyin. Bu işlev, örneğimizde verilenmain()eş yordamını çalıştırır veasyncioolay döngüsünü yönetir. Korotinler async/await sözdizimi kullanılarak bildirilir. Bu örnekte,main()coroutine önceBlobServiceClientkullanarak en üst düzeyasync witholuşturur, ardından kapsayıcıları listeleyen yöntemi çağırır. Yalnızca en üst düzey istemcinin kullanmasıasync withgerektiğini unutmayın; bu istemciden oluşturulan diğer istemciler aynı bağlantı havuzunu paylaşır.async def main(): sample = ContainerSamples() # TODO: Replace <storage-account-name> with your actual storage account name account_url = "https://<storage-account-name>.blob.core.windows.net" credential = DefaultAzureCredential() async with BlobServiceClient(account_url, credential=credential) as blob_service_client: await sample.list_containers(blob_service_client) if __name__ == '__main__': asyncio.run(main())Kapsayıcıları listelemek için kod ekleyin. Kod, zaman uyumlu örnekle aynıdır, ancak yöntem
asyncanahtar sözcüğüyle bildirilir veasync foryöntemi çağrılırkenlist_containerskullanılır.async def list_containers(self, blob_service_client: BlobServiceClient): async for container in blob_service_client.list_containers(include_metadata=True): print(container['name'], container['metadata'])
Bu temel kurulum ile, bu makaledeki diğer örnekleri async/await söz dizimini kullanarak eş yordamlar olarak uygulayabilirsiniz.
Kaynaklar
Python 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.
Kod örnekleri
- Bu makaledeki zaman uyumlu veya zaman uyumsuz kod örneklerini (GitHub) görüntüleyin.
REST API işlemleri
Python için Azure SDK, Azure REST API'sinin üzerinde derlenmiş kitaplıklar içerir ve tanıdık Python 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, Python için Blob Depolama geliştirici kılavuzunun bir parçasıdır. Daha fazla bilgi edinmek için Python uygulamanızı oluşturma makalesinde geliştirici kılavuzu makalelerinin tam listesine bakın.