Agent Skill
2/7/2026

oss-uploader

Upload files and directories to Aliyun OSS (Object Storage Service). Use this skill when the user wants to deploy files to OSS, manage OSS uploads, or configure OSS deployment workflows.

L
lorainwings
0GitHub Stars
2Views
npx skills add lorainwings/oss-uploader-skills

SKILL.md

Nameoss-uploader
DescriptionUpload files and directories to Aliyun OSS (Object Storage Service). Use this skill when the user wants to deploy files to OSS, manage OSS uploads, or configure OSS deployment workflows.

name: oss-uploader description: Upload files and directories to Aliyun OSS (Object Storage Service). Use this skill when the user wants to deploy files to OSS, manage OSS uploads, or configure OSS deployment workflows. dependencies: "@atomfe/oss-uploader>=1.0.0"

重要:在执行此技能的整个过程中,必须使用中文与用户交流。所有输出、提示、说明和反馈都必须使用中文,不得使用英文。

Skill 目录定义

重要:本文档中所有 <skill-dir> 占位符必须替换为此 SKILL.md 文件所在的目录的绝对路径。

例如,如果此 SKILL.md 文件位于 /Users/xxx/.claude/plugins/oss-uploader/skills/oss-uploader/SKILL.md,则 <skill-dir> 应替换为 /Users/xxx/.claude/plugins/oss-uploader/skills/oss-uploader

在执行任何包含 <skill-dir> 的命令之前,必须先确定此文件的绝对路径,然后将所有 <skill-dir> 替换为该路径。

Overview

此技能帮助用户使用 @atomfe/oss-uploader CLI 工具将文件上传到阿里云 OSS。它处理配置、文件上传和部署工作流程。

Instructions

执行此技能时,按以下步骤进行:

1. 检查工具安装

  • 执行 which oss-uploader 检查工具是否已安装
  • 如果已安装,跳过安装步骤
  • 如果未安装,询问用户是否安装:npm install -g @atomfe/oss-uploader

2. 环境变量自检

检查以下环境变量是否已设置(只显示是否已设置,不显示实际值):

  • OSS_REGION: OSS 区域(例如:oss-cn-hangzhou)
  • OSS_ACCESS_KEY_ID: 访问密钥 ID
  • OSS_ACCESS_KEY_SECRET: 访问密钥密文
  • OSS_BUCKET: 存储桶名称

如果任何必需的环境变量未设置,引导用户配置。详见 setup.md

3. 询问保存路径

  • 检查上次使用的目录:cat /tmp/oss-uploader/last-path 2>/dev/null
  • 如果有上次目录,询问用户是否使用上次的目录
  • 如果用户选择不使用或没有上次目录,使用交互式目录浏览器:oss-uploader browse <目录前缀>

详见 workflow.md 中的「远程目录选择流程」。

4. 执行上传

使用适当的选项构建命令并执行上传。

重要:执行上传前,必须先创建临时目录:

mkdir -p /tmp/oss-uploader

映射文件路径使用 -m /tmp/oss-uploader/mapping.json

常用命令详见 commands.md

5. 展示结果

  • 上传成功后,在终端简要显示上传结果
  • 使用 Node.js 脚本将映射数据注入到预览页面
  • 保存使用的目录路径到 /tmp/oss-uploader/last-path
  • 打开生成的预览页面
# 确保临时目录存在
[ -d "/tmp/oss-uploader" ] || mkdir -p /tmp/oss-uploader

# 使用 node 脚本注入数据并生成预览页面
node <skill-dir>/scripts/inject.js \
  <skill-dir>/template/index.html \
  /tmp/oss-uploader/mapping.json \
  /tmp/oss-uploader/preview.html

# 保存上次使用的目录路径
echo "<目录路径>" > /tmp/oss-uploader/last-path

# 打开预览页面
open /tmp/oss-uploader/preview.html

注意:使用 Node.js 脚本注入数据可以正确处理多行 JSON,避免 sed 命令因换行符导致替换失败。映射数据直接内嵌到 HTML 中,绕过浏览器 file:// 协议下的 CORS 限制。

Examples

上传单个文件

oss-uploader upload <file-path>

上传目录

oss-uploader upload <directory> -t <target-path>

部署前端构建

mkdir -p /tmp/oss-uploader
oss-uploader upload ./dist -t static/ -m /tmp/oss-uploader/mapping.json -v

带过滤的部署

oss-uploader upload ./dist -t assets/ -i "**/*.js" "**/*.css" -e "**/*.map"

Guidelines

  • 安全:凭证只能设置在本地环境变量中,禁止泄露到代码仓库或聊天工具
  • 权限:用户通常没有存储桶根目录权限,需先确认有权限的目录前缀
  • 预览:不要在对话中输出完整的 HTML 内容,直接使用命令生成文件

Reference

Skills Info
Original Name:oss-uploaderAuthor:lorainwings