列出基于元数据的天蓝色斑点-python sdk

问题描述

我正在使用azure blob存储sdk,希望能够有一种基于某些元数据信息过滤blob的方法

from azure.storage.blob import BlobServiceClient

container_name = 'c1'
blob_service_client = BlobServiceClient.from_connection_string(os.environ['STORAGE_ACCOUNT_CONNECTION_STRING'])
container_client = blob_service_client.get_container_client(container_name)

all_blobs = container_client.list_blobs(include='Metadata')

for in in all_blobs:
    print('{}'.format(i.name))

我在该帐户中保存了数千个Blob,我想在我的应用中更快地进行搜索-是否可以根据元数据进行过滤?我不想查询所有Blob并进行列表理解。 -谢谢!

解决方法

您的包含必须是 BlobProperties 列表:

service_client = BlobServiceClient.from_connection_string(connection_string)
container_client = service_client.get_container_client(container_name)

blob_iter = service_client.list_blobs(name_starts_with=None,include=["metadata"])
for i in blob_iter:
    print(i)

参考见:https://docs.microsoft.com/de-de/python/api/azure-storage-blob/azure.storage.blob.blobproperties?view=azure-pythonhttps://docs.microsoft.com/de-de/python/api/azure-storage-blob/azure.storage.blob.containerclient?view=azure-python#list-blobs-name-starts-with-none--include-none----kwargs-

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...