把 cfbed-upload-skill 接进 OpenClaw,让”写作 → 配图 → 发布”连成自动化闭环。下面是从部署到排错的速查清单。
前置依赖
先在 Cloudflare 部署好 CloudFlare-ImgBed(基于 Workers + R2/KV 的免费图床,支持 Telegram / R2 / S3 / Discord / HuggingFace 等后端)。部署后拿到两样东西:
- 图床地址:如
https://your-cfbed.pages.dev - API Token:后台「系统设置 → 安全设置 → API Token 管理」生成
装
cd ~/.openclaw/workspacemkdir -p skillsgit clone https://github.com/MarSeventh/cfbed-upload-skill.git skills/cfbed-upload-skill核心结构:
skills/cfbed-upload-skill/├── SKILL.md # skill 定义,OpenClaw 据此识别调用├── scripts/upload.sh # 上传脚本├── .env.example # 环境变量模板└── README.md配
cd skills/cfbed-upload-skillcp .env.example .envvim .envCFBED_URL=https://your-cfbed.pages.devCFBED_TOKEN=your_api_token_hereUPLOAD_CHANNEL=telegramCHANNEL_NAME=UPLOAD_FOLDER=| 字段 | 必填 | 说明 |
|---|---|---|
CFBED_URL | ✓ | 图床实例地址,末尾不要带斜杠 |
CFBED_TOKEN | ✓ | 后台生成的 API Token,有时效 |
UPLOAD_CHANNEL | ✓ | 存储后端:telegram / cfr2 / s3 / discord / huggingface,须与后台配置一致 |
CHANNEL_NAME | - | 多通道时指定通道名,单通道留空 |
UPLOAD_FOLDER | - | 服务端归档目录,不分类留空 |
.env含敏感信息,记得加进.gitignore,别提交到仓库。
验
cd ~/.openclaw/workspacemkdir -p exportsecho "CFBed upload test" > exports/test.txtbash skills/cfbed-upload-skill/scripts/upload.sh exports/test.txt成功会返回公开 URL:https://your-cfbed.pages.dev/file/test.txt。再用 curl 确认可访问(预期 200 OK):
curl -I https://your-cfbed.pages.dev/file/test.txt图片同理,拿返回的 URL 在浏览器里打开看看能否正常显示。
接入 Hexo
文章里直接引用:
Front Matter 配封面 / 顶部图:
cover: "https://your-cfbed.pages.dev/file/cover.png"top_img: "https://your-cfbed.pages.dev/file/top.png"完整闭环:OpenClaw 生成内容 → 调 skill 上传配图 → 把 URL 插进文章 → 经 hexo-blog-publisher skill 发布。全程无需手动上传、复制、粘贴。
排错
上传失败,按此顺序逐项查:
| 现象 / 步骤 | 检查点 |
|---|---|
| 配置 | cat .env 确认存在、CFBED_URL/CFBED_TOKEN 填全、URL 末尾无斜杠 |
| Token | curl -H "Authorization: Bearer YOUR_TOKEN" .../api/v1/auth/verify,报错就重新生成 |
| 后端 | UPLOAD_CHANNEL 与后台一致;Telegram 需配 Bot Token + Channel ID,R2 需绑桶,多通道填 CHANNEL_NAME |
| 访问 404 | 查 UPLOAD_FOLDER 路径、等 CDN 缓存、核对 Cloudflare 后端权限 |
| 仍定位不了 | bash -x scripts/upload.sh exports/test.txt 看每步细节 |
验证 Token 的完整命令:
curl -H "Authorization: Bearer YOUR_TOKEN" \ https://your-cfbed.pages.dev/api/v1/auth/verify