域名DNS运维
Cloudflare
Azure Blob Storage Python SDK,用于在微软云平台上管理非结构化数据对象。支持文件上传下载、容器生命周期管理、访问权限控制及批量数据处理。
适用于企业云原生数据流转场景,如备份归档、应用文件托管、跨地域数据分发。通过Python SDK实现非结构化数据的自动化上传下载与权限管控,降低运维人工介入成本,支持批量操作与传输性能调优,满足开发团队对Azure存储资源的标准化调用需求。
落地案例:某电商平台每日需将订单日志从本地服务器迁移至云端长期存储。开发人员使用本工具编写定时脚本:按日期前缀创建容器目录,分块并发上传GB级压缩包,并为财务审计部门生成7天有效期的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 |
原始链接:https://github.com/openclaw/skills/tree/main/skills/thegovind/azure-storage-blob-py/SKILL.md
来源类型:GitHub仓库