SuperAPI AI 工具集

azure-storage-blob-py

数据与分析

查看项目

更新于 10-16 02:09

技能介绍

用途

Azure Blob Storage Python SDK(azure-storage-blob)是 Azure Blob 存储的 Python 客户端库,用于处理非结构化数据的对象存储。它面向需要在 Python 应用中上传、下载、列举和管理 Blob 及容器的开发者。

主要能力

  • 客户端层级:BlobServiceClient(账户级操作)、ContainerClient(容器操作)、BlobClient(单个 Blob 操作)。
  • 容器管理:通过 get_container_client 获取容器客户端并调用 create_container 创建容器。
  • 上传 Blob:支持从文件路径、字节/字符串、流(如 io.BytesIO)上传,可设置 overwrite=True 覆盖。
  • 下载 Blob:支持下载到文件、读入内存(readall 返回 bytes),或通过 readinto 写入已有缓冲区。
  • 列举 Blob:list_blobs 可列出全部 Blob,支持 name_starts_with 前缀过滤;walk_blobs 配合 delimiter 可遍历虚拟目录层级。
  • 删除 Blob:delete_blob 删除单个 Blob,可通过 delete_snapshots="include" 同时删除快照。
  • 性能调优:可配置 max_block_size、max_single_put_size,并通过 max_concurrency 实现并行上传与下载。
  • SAS 令牌:使用 generate_blob_sas 与 BlobSasPermissions 生成带权限和过期时间的 SAS 令牌,可基于账户密钥或用户委派密钥。
  • 属性与元数据:get_blob_properties 获取大小、内容类型、最后修改时间等;set_blob_metadata 设置元数据;set_http_headers 配合 ContentSettings 设置内容类型。
  • 异步客户端:azure.storage.blob.aio 与 azure.identity.aio 提供异步 BlobServiceClient 和 DefaultAzureCredential,支持 async with 上下文管理。

使用方式

安装:

pip install azure-storage-blob azure-identity

环境变量:

AZURE_STORAGE_ACCOUNT_NAME=<your-storage-account>

或使用完整 URL

AZURE_STORAGE_ACCOUNT_URL=https://<account>.blob.core.windows.net

身份验证示例:

from azure.identity import DefaultAzureCredential from azure.storage.blob import BlobServiceClient

credential = DefaultAzureCredential() account_url = "https://<account>.blob.core.windows.net" blob_service_client = BlobServiceClient(account_url, credential=credential)

核心工作流示例(创建容器、上传、下载、列举、删除)见官方文档中的代码片段,包括从文件、字节、流上传,下载到文件或内存,按前缀或虚拟目录列举,以及删除 Blob 与快照。

适用场景

  • 在 Python 应用中读写 Azure Blob 存储中的非结构化数据。
  • 需要以编程方式管理容器和 Blob 生命周期。
  • 需要生成 SAS 令牌以进行受限访问。
  • 需要异步 I/O 或大文件并发传输的场景。

限制

  • 仅当任务明确匹配上述范围时使用。
  • 输出不应替代针对具体环境的验证、测试或专家审查。
  • 若缺少必要输入、权限、安全边界或成功标准,应停止并请求澄清。
  • 资料未提供收费、价格、平台支持范围等额外信息。