首页 > 解决方案 > “BlobServiceClient”对象没有属性“ls_files”

问题描述

我正在尝试使用此 github 中的 BlobServiceClient 库中的函数 ls_files ( https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/storage/azure-storage-blob/samples/ blob_samples_directory_interface.py)。但是,当我运行代码时,出现错误:

“BlobServiceClient”对象没有属性“ls_files”

这是我的代码:

import os, uuid, sys
from azure.storage.blob import BlobClient, BlobServiceClient, ContainerClient, PublicAccess, __version__
from azure.storage.blob.blockblobservice import BlockBlobService
import re

account_name = ACCOUNT_NAME
account_key = ACCOUNT_KEY
connect_str = CONNECTION_STRING
account_url = ACCOUNT_URL
container_name = CONTAINER_NAME
file_path = FILE_PATH
block_blob_service = BlockBlobService(account_name = account_name, account_key = account_key)
blob_service_client = BlobServiceClient(account_url = account_url, connect_str = connect_str, container_name = container_name)

def list_filenames_in_blob(blob):
    file_names = blob_service_client.ls_files(file_path)
    return file_names

def run_action():
    try:
       for blob in generator:
            list_filenames_in_blob(blob)
except Exception as e:
        print(e)

# Main method.
if __name__ == '__main__':
    run_action()

你能告诉我我做错了什么吗?非常感谢您提前。

标签: pythonazureazure-blob-storage

解决方案


python包中的类BlobServiceClient没有方法ls_files。更多详情,请参阅此处。我们需要自己实施。在文档中,您指的是,用户也这样做

此外,根据我的理解,我们希望在一个存储容器中列出 blob 的名称。如果有,请参考以下代码

from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient

conn_str = ''
blob_service_client = BlobServiceClient.from_connection_string(conn_str)

blob_list = blob_service_client.get_container_client('<container name>').list_blobs()

for blob in blob_list:
    print(blob.name)

在此处输入图像描述


推荐阅读