You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Python SDK新版本:BlobServiceClient如何获取Blob大小?

新版本Azure Blob Python SDK获取Blob大小的实现

在新版本的azure.storage.blob包中,BlobServiceClient(以及更常用的ContainerClient)确实提供了类似get_blob_properties的方法,而且遍历Blob列表时还能直接获取大小属性,无需额外调用接口,效率更高。

转换后的代码示例

import os
from azure.storage.blob import BlobServiceClient

# 从环境变量读取配置
CONTAINER_NAME = os.environ["AZURE_CONTAINER_NAME"]
AZURE_STORAGE_ACCOUNT = os.environ["AZURE_STORAGE_ACCOUNT"]
AZURE_STORAGE_KEY = os.environ["AZURE_STORAGE_KEY"]

# 初始化BlobServiceClient(也可以用连接字符串:f"DefaultEndpointsProtocol=https;AccountName={AZURE_STORAGE_ACCOUNT};AccountKey={AZURE_STORAGE_KEY};EndpointSuffix=core.windows.net")
blob_service_client = BlobServiceClient(
    account_url=f"https://{AZURE_STORAGE_ACCOUNT}.blob.core.windows.net",
    credential=AZURE_STORAGE_KEY
)

# 获取容器客户端
container_client = blob_service_client.get_container_client(CONTAINER_NAME)

total_size = 0

# 遍历容器内的Blob,直接从返回的BlobProperties中获取大小
for blob in container_client.list_blobs():
    # blob是BlobProperties对象,直接访问size属性(对应旧版的content_length)
    total_size += blob.size

print(f"容器总大小: {total_size} 字节")

关键说明

  1. 直接获取大小:新版本的list_blobs()返回的BlobProperties对象已经包含size属性,无需额外调用get_blob_properties,减少API请求次数。
  2. get_blob_properties方法的使用:如果需要获取Blob的其他详细属性(如创建时间、元数据等),可以通过ContainerClient或BlobServiceClient调用该方法:
    blob_properties = container_client.get_blob_properties(blob.name)
    # 获取大小
    blob_size = blob_properties.size
    # 获取创建时间
    created_time = blob_properties.created_on
    
  3. 客户端选择:推荐使用ContainerClient操作单个容器内的Blob,比直接用BlobServiceClient更直观高效。

内容的提问来源于stack exchange,提问作者paone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 10:40:37