Azure 文件共享 Python 技能
帮助 Python 开发者安全管理 Azure SMB 文件共享、目录和文件。
证据显示优先使用 DefaultAzureCredential、Entra ID、RBAC,并避免连接字符串和 API 密钥;但创建、删除、上传、复制等云端外部副作用没有用户确认、最小权限说明或明确回滚流程,也未充分说明敏感数据处理,因此扣分。
文档覆盖同步/异步客户端、生命周期管理、范围操作和部分错误处理建议;但示例存在未展示的 os 导入、异步示例中的 account_url 未定义,并缺少重试、分页、并发、异常反馈和可执行测试证据。按静态校准不超过 10 分。
触发词、Python SDK、SMB 文件共享及主要操作场景较明确,且提供同步和异步形式;但未明确非适用边界、输入约束、权限前置条件、区域网络可达性或中文使用说明,因此扣分。
具备名称、描述、MIT 许可证、版本号、安装说明、分层 reference 文件和维护相关仓库背景;但缺少变更日志、明确维护责任人/更新路径、完整依赖版本、FAQ 和系统化故障排查,因此未满分。
可直接覆盖共享、目录、文件、范围和快照等常见 SDK 任务,示例通常可作为起点;但部分代码不能直接运行,缺少完整初始化、权限、错误恢复和生产级验证,仍需明显人工审查,因此按静态校准不超过 7 分。
技能文件提供了具体代码、引用文件和 API 方法名,仓库还显示存在 CI、评估工作流和测试框架;但没有该技能专属的已提交测试或第三方执行结果,关键 API 正确性无法仅凭静态材料独立复现,因此按静态校准不超过 5 分。
- 删除共享、目录和文件会产生不可逆或高影响的云端副作用;示例未要求确认,也未提供通用恢复流程。
- 同步示例缺少 os 导入,异步示例中的 account_url 未定义,代码复制后不能保证直接运行。
- 生产使用前应核对当前 SDK API、RBAC 权限、错误重试、分页、超时、覆盖语义和区域网络可达性。
它能做什么 & 适用场景
该技能面向使用 Azure Storage File Share SDK for Python 的开发者,覆盖 SMB 文件共享、目录和文件操作。内容包括共享创建、列举、删除与客户端获取,以及目录和文件的增删改查、复制、分片范围操作和快照。它建议使用 DefaultAzureCredential 与 Microsoft Entra ID,并要求同步或异步客户端使用上下文管理器。适合需要在云端或混合迁移场景中编写 Azure 文件共享代码的团队。
指导安装 azure-storage-file-share,配置 AZURE_STORAGE_ACCOUNT_URL 和可选的 AZURE_TOKEN_CREDENTIALS;使用 ShareServiceClient、ShareClient、ShareDirectoryClient 和 ShareFileClient 创建、列举、删除共享与目录;上传、下载、读取属性、删除和复制文件;执行范围上传与下载;创建并访问共享快照;提供同步和异步 Python 示例,以及凭据和客户端生命周期管理模式。
- Python 开发者需要创建、列举或删除 Azure SMB 文件共享。
- 应用需要在共享中创建嵌套目录并列出目录和文件。
- 迁移或业务系统需要从本地文件、字符串或字节上传文件,并将文件下载到内存或本地文件。
- 处理大文件或局部更新时,需要使用分块流式下载或范围读写。
- 执行重大变更前,需要创建 Azure 文件共享快照以保留恢复点。
- 希望使用 Microsoft Entra ID 和 DefaultAzureCredential 替代连接字符串或账户密钥的团队。
优缺点一览
- 覆盖共享、目录、文件、范围操作和快照等核心 Azure File Share 场景。
- 同时提供同步和异步客户端示例。
- 明确建议使用 DefaultAzureCredential、Microsoft Entra ID 和上下文管理器。
- 包含流式下载、配额和快照等生产实践提示。
- 需要 Azure 文件共享账户 URL 以及可用的身份验证配置。
- 未说明具体 Microsoft Entra RBAC 角色或所需权限。
- 提供的是代码模式和示例,未在给定材料中证明该单项技能具有独立测试覆盖。
- 范围仅限 Azure Storage File Share,不应据此推断 Blob、Queue 或其他存储服务能力。
如何安装
先安装技能集合:npx skills add microsoft/skills,然后在向导中选择所需技能。技能会安装到所选 Agent 的目录,例如 GitHub Copilot 使用 .github/skills/。随后安装 Python SDK:pip install azure-storage-file-share。使用 Entra ID 身份验证时,设置 AZURE_STORAGE_ACCOUNT_URL=https://<account>.file.core.windows.net;若生产环境使用 DefaultAzureCredential,还应设置 AZURE_TOKEN_CREDENTIALS=prod。具体 Azure 权限配置未在该技能中说明。
如何使用
可用以下提示触发技能:"使用 azure-storage-file-share 和 ShareServiceClient,用 Python 创建一个 Azure 文件共享并上传文件"。代码应使用 ShareServiceClient、ShareClient、ShareDirectoryClient 或 ShareFileClient;同步客户端使用 with,上下文中的异步客户端和 azure.identity.aio.DefaultAzureCredential 使用 async with。生产环境优先使用 DefaultAzureCredential,并保持同步或异步调用链一致。