Azure 文件共享 TypeScript 技能
为 TypeScript 代码代理提供 Azure SMB 文件共享操作指南。
技能展示连接字符串、账户密钥、SAS 和令牌凭据的使用,并包含删除、覆盖、复制及本地文件读写示例;但未说明最小权限、用户确认、敏感数据避免记录、外部数据流、失败恢复或回滚,故扣分。未发现明确红线风险。
内容覆盖常见共享、目录和文件操作,错误处理示例也区分了部分 HTTP 状态;但未提供该技能专属测试、边界条件、重试/幂等策略或异常输入反馈。静态校准下不超过10分,故扣分。
触发词、TypeScript/JavaScript 范围、Node.js 与浏览器差异及主要操作场景较清楚;但未明确非适用场景、输入输出契约、版本兼容边界,也未提供中文支持或中国大陆网络可达性说明,故扣分。
具备 YAML 元数据、MIT 许可、作者和1.0.0版本号,且按安装、认证、层级、操作和最佳实践组织文档;但没有变更日志、维护责任与更新路径、FAQ、依赖版本锁定或系统化限制说明,故扣分。
提供了从认证到共享、目录、文件、范围、快照、SAS 和错误处理的较完整代码片段,核心 SDK 查询任务大体可直接参考;但没有针对该技能的可执行验证、完整端到端示例或与手工实现的比较证据,且部分平台/API细节仍需复核,静态上限为7分。
技能文件包含具体代码、版本和平台声明;仓库还提供通用 CI、评估工作流和测试工具,但给定材料未证明它们覆盖该选定技能的关键路径,也没有第三方执行结果或独立复现记录,因此低于静态可授予的5分上限。
- 不要将账户密钥、连接字符串或SAS令牌硬编码、提交到仓库或输出到日志;优先采用受限权限的托管身份并明确确认破坏性操作。
- 在采用示例前复核当前@azure/storage-file-share版本的参数签名、浏览器/Node.js限制、SAS生成方式和下载范围调用,并补充端到端测试。
- 该技能未说明中国大陆网络可达性;依赖Azure服务和相关文档访问时应先验证目标环境。
它能做什么 & 适用场景
该技能面向使用 @azure/storage-file-share 的 JavaScript/TypeScript 开发者,覆盖 Azure Files SMB 文件共享、目录和文件操作。它提供客户端层级、连接字符串、共享密钥、Microsoft Entra 凭据和 SAS 的示例。内容还涵盖上传、下载、复制、元数据、HTTP 标头、范围操作、快照、SAS 生成和错误处理。适合需要让编码代理生成 Azure 文件共享代码的项目,但实际运行仍需要 Azure 存储账户及相应凭据。
指导代理安装 @azure/storage-file-share 与 @azure/identity,创建 ShareServiceClient、ShareClient、ShareDirectoryClient 和 ShareFileClient;调用 Azure 文件共享 API 创建、列出、删除和配置共享,创建和管理目录,上传或下载字符串、缓冲区、流及本地文件,复制和删除文件,读取或设置文件属性、元数据和 HTTP 标头,执行范围写入、下载和清除,创建或删除快照,生成文件或共享 SAS,并根据 RestError.statusCode 处理错误。
- 使用 Node.js 或 TypeScript 构建文件服务,需要创建共享、目录并管理文件的开发者。
- 需要从本地文件、Buffer 或可读流上传 Azure Files 内容的后端团队。
- 需要分段更新或读取大文件、设置文件元数据和 HTTP 标头的应用开发者。
- 需要使用 DefaultAzureCredential、托管身份、共享密钥、连接字符串或 SAS 连接 Azure 存储的团队。
- 需要在重大变更前创建共享快照并实现幂等删除或创建操作的工程师。
优缺点一览
- 覆盖共享、目录、文件、范围、快照、SAS 和错误处理等完整操作面。
- 同时提供连接字符串、共享密钥、Microsoft Entra 凭据和 SAS 示例。
- 明确区分 Node.js 与浏览器能力,并给出 Node.js 版本要求。
- 包含流式上传、文件下载和 IfExists 幂等操作等实用模式。
- 部分能力仅支持 Node.js,包括共享密钥、uploadFile、uploadStream、下载到文件或缓冲区以及 SAS 生成。
- 示例依赖 Azure 存储账户、网络访问和有效凭据;源材料未提供本地模拟器或离线模式。
- 源材料没有给出该单项技能的独立测试覆盖或测试结果。
- 源材料未说明具体 Azure SDK 包版本,只写明当前为 12.x。
如何安装
先安装整个技能集合:npx skills add microsoft/skills。按照向导选择需要的技能;技能会安装到所选代理的目录,例如 GitHub Copilot 使用的 .github/skills/。该技能要求在项目中安装 npm 包:npm install @azure/storage-file-share @azure/identity。
如何使用
在支持 Agent Skills 的编码代理中提出包含“file share”“@azure/storage-file-share”“ShareServiceClient”“ShareClient”“SMB”或“Azure Files”的请求,例如:“请用 @azure/storage-file-share 创建一个共享,创建目录并上传文件,同时使用 DefaultAzureCredential。”设置 Azure 存储相关环境变量后,让代理按技能中的客户端、认证和操作示例生成代码。源材料未规定特定代理的调用命令或提示词格式。