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

Shu*_*uti 1 python azure azure-blob-storage

我正在尝试使用此 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()
Run Code Online (Sandbox Code Playgroud)

你能让我知道我做错了什么吗?预先非常感谢您。

Jim*_* Xu 5

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)

Run Code Online (Sandbox Code Playgroud)

在此输入图像描述