0

我见过的大多数(全部?)Azure 存储 Python SDK 示例演示了创建 aBlobServiceClient以便然后创建一个BlobClient用于上传/下载 blob(ref1ref2等)。

为什么要创建 a BlobServiceClientthen aBlobClient而不是直接创建 a BlobClient

例子:

from azure.storage.blob import BlobClient


def create_blob_client(connection_string):
    try:
        blob_client = BlobClient.from_connection_string(connection_string)
    except Exception as e:
        logging.error(f"Error creating Blob Service Client: {e}")
    return blob_client

connection_string = os.environ["CONNECTION_STRING"]

blob_client = create_blob_client(connection_string)
4

2 回答 2

5

为什么要先创建 BlobServiceClient 然后再创建 BlobClient 而不是直接创建 BlobClient?

BlobClient只允许您使用 blob,因此如果您只想使用 blob,您可以直接创建一个 BlobClient 并使用它。您无需先创建 BlobServiceClient,然后再从中创建 BlobClient。

BlobServiceClient如果您想在 blob 服务级别执行操作,例如设置 CORS 或列出存储帐户中的 blob 容器,就会出现这种情况。那时您将需要 BlobServiceClient。

于 2021-08-02T06:14:14.163 回答
1

BlobServiceClient.get_blob_clientBlobClient如果您已经创建了 aBlobServiceClient并提供了连接信息,这只是一种轻松获取 a 的便捷方法。BlobServiceClient API说:

此客户端提供检索和配置帐户属性以及列出、创建和删除帐户中的容器的操作。对于与特定容器或 blob 相关的操作,也可以使用 get_client 函数检索这些实体的客户端。

BlobClient如果这就是您的用例所需的全部内容(例如,您的容器已经创建),那么直接创建 a 没有任何问题。文档和示例很可能使用该BlobServiceClient.get_blob_client方法,因为它们通常是端到端的,即创建容器、上传 blob、删除容器等。

于 2021-08-02T06:16:01.063 回答