Azure Blob存储操作

3小时前更新 2 00
Azure Blob存储操作Azure Blob存储操作
Azure Blob存储操作

技能简介

Azure Blob Storage Python SDK,用于在微软云平台上管理非结构化数据对象。支持文件上传下载、容器生命周期管理、访问权限控制及批量数据处理。

业务背景

适用于企业云原生数据流转场景,如备份归档、应用文件托管、跨地域数据分发。通过Python SDK实现非结构化数据的自动化上传下载与权限管控,降低运维人工介入成本,支持批量操作与传输性能调优,满足开发团队对Azure存储资源的标准化调用需求。

落地案例:某电商平台每日需将订单日志从本地服务器迁移至云端长期存储。开发人员使用本工具编写定时脚本:按日期前缀创建容器目录,分块并发上传GB级压缩包,并为财务审计部门生成7天有效期的SAS只读链接。同时配置生命周期策略自动清理超期数据,实现无人值守的合规化数据管理。

能做什么

  • 向云端容器上传本地文件、字节流或内存数据
  • 下载Blob到本地磁盘或读取到内存缓冲区
  • 遍历容器内对象列表,支持前缀过滤和虚拟目录层级
  • 生成限时访问的SAS共享签名链接
  • 配置分块大小与并发数优化大文件传输性能

使用说明

1. 安装依赖

pip install azure-storage-blob azure-identity

2. 配置环境变量

AZURE_STORAGE_ACCOUNT_NAME=<your-storage-account>
# 或使用完整URL
AZURE_STORAGE_ACCOUNT_URL=https://<account>.blob.core.windows.net

3. 初始化客户端

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)

4. 创建容器并上传文件

container_client = blob_service_client.get_container_client("mycontainer")
container_client.create_container()

blob_client = blob_service_client.get_blob_client(
    container="mycontainer", blob="sample.txt"
)
with open("./local-file.txt", "rb") as data:
    blob_client.upload_blob(data, overwrite=True)

5. 下载与删除

# 下载到文件
with open("./downloaded.txt", "wb") as file:
    download_stream = blob_client.download_blob()
    file.write(download_stream.readall())

# 删除Blob(含快照)
blob_client.delete_blob(delete_snapshots="include")

输入与输出

见下方输入与输出表格。

项目内容
输入本地文件路径/字节流/IO流;目标容器名称;目标Blob名称;Azure存储账户名或URL;身份凭证(DefaultAzureCredential或服务主体);可选:SAS权限配置、分块大小、并发数
输出上传完成确认;下载的字节数据或文件;Blob属性(大小、内容类型、修改时间);Blob列表迭代器;生成的SAS令牌字符串
适用人群需要将本地数据归档到云端的对象存储场景;构建数据湖或日志集中存储系统;跨地域文件分发与共享;需要临时安全访问链接的文件下载服务
不包含关系型数据库表结构管理;实时消息队列处理;虚拟机或容器实例的部署编排;Azure Data Lake Gen2的层级命名空间专用API

 

风险提示

  • SAS令牌泄露可能导致未授权数据访问,建议设置最短有效期
  • 覆盖上传操作不可逆,生产环境建议先确认目标Blob不存在
  • DefaultAzureCredential依赖本地身份凭证链,容器或无桌面环境需改用服务主体认证
  • 大文件未配置分块参数时可能触发内存溢出或超时中断

来源信息

原始链接:https://github.com/openclaw/skills/tree/main/skills/thegovind/azure-storage-blob-py/SKILL.md
来源类型:GitHub仓库

数据统计

相关导航

暂无评论

none
暂无评论...