python - 获取返回空字典的存储 blob 的属性

标签 python azure azure-storage azure-blob-storage

我刚刚上传了 5GB 数据,想要验证 MD5 和是否匹配。我已经为文件的本地副本计算了此值,但从 Azure 获取 ContentMD5 时遇到问题。到目前为止,我得到一个空字典,但我可以看到 blob 名称。目前我将其限制为前 10 项,仅供调试之用。我知道 Azure 上的 MD5 与典型的 md5sum 调用不同,并且已在本地允许这样做。但是,目前我看不到任何 blob 属性。当我通过 Azure 控制台浏览时,这些属性就在那里(ContentMD5 属性也是如此)。

我哪里出错了?

这是我目前的代码:

import os
from os import sys
from azure.storage.blob import BlobServiceClient

def remote_check(connection_str):
    blob_service_client = BlobServiceClient.from_connection_string(connection_str)
    container_name = "global"
    container = blob_service_client.get_container_client(container=container_name)
    blob_list = container.list_blobs()
    count = 0
    for blob in blob_list:
        if count < 10:
            blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob)
            a = blob_client.get_blob_properties()
            print(a.metadata)
            print("Blob name: " + str(blob_client.blob_name))
            count = count + 1
        else:
           break

def main():
    try:
        CONNECTION_STRING = os.environ['AZURE_STORAGE_CONNECTION_STRING']
        remote_check(CONNECTION_STRING)
    except KeyError:
        print("AZURE_STORAGE_CONNECTION_STRING must be set.")
        sys.exit(1)

if __name__ == '__main__':
    main()

最佳答案

请确保您使用的是最新版本的软件包 azure-storage-blob 12.6.0 .

一些属性位于content_settings中,例如要获取content_md5,您应该使用以下代码:

a=blob_client.get_blob_properties()
print(a.content_settings.content_md5)

这是我的测试结果:

enter image description here

关于python - 获取返回空字典的存储 blob 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65275817/

相关文章:

python - 如何在鹈鹕中按文件名对文章进行排序?

c# - CosmosDB 中的模拟 ItemResponse

python - 如何使用 Azure Speech to Text 和 Python SDK 获取字级时间戳?

azure - 无法删除启用版本控制的 Azure 存储帐户

azure - Azure SAS 上的最大长度

python - 使用 Homebrew 安装 Python 后找不到 IDLE

python - 是否有用于将 RTF 转换为纯文本的 Python 模块?

python创建带有变量赋值且不重复的列表理解

Azure服务总线: Best way to implement exponential retry policy for failed to process messages

azure - 如何检测 Azure 角色中节点之间的时钟偏差?