一键导入
upload-cdn
上传本地文件到 S3 兼容对象存储(Cloudflare R2 等),返回公开访问 URL。当用户要上传图片/文件到 CDN、获取外链时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
上传本地文件到 S3 兼容对象存储(Cloudflare R2 等),返回公开访问 URL。当用户要上传图片/文件到 CDN、获取外链时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | upload-cdn |
| version | 1.0.0 |
| trigger | 上传CDN|上传图床|upload cdn|上传到CDN|上传文件到云|获取外链|公开链接|图片外链 |
| description | 上传本地文件到 S3 兼容对象存储(Cloudflare R2 等),返回公开访问 URL。当用户要上传图片/文件到 CDN、获取外链时使用。 |
上传本地文件到 S3 兼容对象存储,返回公开 URL。支持 Cloudflare R2 及任意 S3 兼容服务。
凭证存放在 ~/.ethan/.secrets/upload-cdn.env,由 shell 工具自动注入,不要在对话中回显明文值。
第 0 步:先用 list_secrets 检查凭证是否已存。
upload-cdn.env → 已配置,直接跳到「使用方法」。第 1 步(凭证不存在时):检测 shell 注入是否生效(可选快速确认):
test -n "$CDN_ENDPOINT" && test -n "$CDN_ACCESS_KEY" && test -n "$CDN_SECRET_KEY" \
&& test -n "$CDN_BUCKET" && test -n "$CDN_PUBLIC_URL" && echo READY || echo MISSING
READY → 继续。MISSING → 凭证缺失。直接向用户索要以下字段,不要再探索其他路径:| 字段 | 说明 | 示例 |
|---|---|---|
CDN_ENDPOINT | S3 endpoint URL | https://<account_id>.r2.cloudflarestorage.com |
CDN_ACCESS_KEY | Access Key ID | R2 → 管理 API 令牌 → 创建令牌 |
CDN_SECRET_KEY | Secret Access Key | 同上 |
CDN_BUCKET | 存储桶名 | my-assets |
CDN_PUBLIC_URL | 公开访问 URL 前缀 | https://cdn.example.com 或 R2 公开域名 |
CDN_REGION | 区域(可选) | R2 填 auto,其他填对应 region(默认 auto) |
拿到后由 agent 写入(file_write 工具,path=~/.ethan/.secrets/upload-cdn.env):
CDN_ENDPOINT="https://<account_id>.r2.cloudflarestorage.com"
CDN_ACCESS_KEY="<access_key_id>"
CDN_SECRET_KEY="<secret_access_key>"
CDN_BUCKET="<bucket_name>"
CDN_PUBLIC_URL="https://cdn.example.com"
CDN_REGION="auto"
写完执行 chmod 600 ~/.ethan/.secrets/upload-cdn.env,然后重新执行原始请求。
规则:所有上传统一使用
ethan/upload/路径前缀,不要用裸文件名作为 key。
上传图片/文件:
python ~/.ethan/skills/upload-cdn/scripts/upload_cdn.py /path/to/file.png "ethan/upload/$(basename /path/to/file.png)"
批量上传(shell 循环):
for f in /tmp/imgs/*.png; do
python ~/.ethan/skills/upload-cdn/scripts/upload_cdn.py "$f" "docs/$(basename "$f")"
done
成功时 stdout 输出公开 URL,失败时 stderr 输出错误并 exit 非0。
docs/2024/image.png),避免与其他文件冲突消息渠道接入配置:飞书 WebSocket 长连接配置与使用说明。未来支持微信、Telegram 等渠道。
飞书云文档(Docx / Wiki 文档):读取和编辑飞书文档内容。当用户给出文档 URL 或 token,或需要查看、创建、编辑文档、插入或下载文档图片附件时使用。文档中嵌入的电子表格、多维表格、画板,先用本 skill 提取 token 再切到对应 skill。当用户给出 doubao.com 的 /docx/ 或 /wiki/ URL/token 时,也应直接使用本 skill;路由依据是 URL 路径模式和 token,而不是域名。不负责文档评论管理,也不负责表格或 Base 的数据操作。
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件(支持大文件分片下载)、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。
Use when first setting up lark-cli, running auth login, switching user/bot identity (--as), handling permission denied or scope errors, needing to update lark-cli, or seeing _notice in JSON output.
微信读书助手 — 搜索书籍、管理书架、查看笔记划线、阅读统计、发现推荐好书。
对代码变更做审查:识别 bug、安全漏洞、性能问题。P0 必须修复写评论,P1 建议性评论,P2 只在总结里一句带过。