initial: 七牛云上传 OpenClaw Skill

功能特性:
- 支持 /upload, /u 命令上传文件到七牛云
- 支持 /qiniu-config 配置管理
- 支持飞书卡片交互
- 支持指定上传路径和存储桶
- 自动刷新 CDN 缓存
- 支持文件覆盖上传

包含组件:
- OpenClaw 处理器 (openclaw-processor.js)
- 独立监听器 (scripts/feishu-listener.js)
- 核心上传脚本 (scripts/upload-to-qiniu.js)
- 部署脚本 (deploy.sh)
- 完整文档

部署方式:
1. 复制 skill 到 ~/.openclaw/workspace/skills/
2. 配置 ~/.openclaw/credentials/qiniu-config.json
3. 重启 OpenClaw Gateway
This commit is contained in:
daoqi
2026-03-07 16:02:18 +08:00
commit 1aeae9cc51
36 changed files with 6826 additions and 0 deletions

171
ARCHITECTURE.md Normal file
View File

@@ -0,0 +1,171 @@
# 🍙 七牛云上传 - 架构方案对比
## 现状
- **飞书开放平台**:事件订阅已配置,使用长连接/回调模式
- **OpenClaw Gateway**:运行在 17733 端口,已配置飞书渠道
- **七牛云配置**:已完成,存储在 `~/.openclaw/credentials/qiniu-config.json`
- **监听器**:运行在 3000 端口
---
## 方案对比
### 方案 A修改飞书请求地址到 3000 端口
```
┌─────────┐ ┌──────────────┐ ┌──────────────────┐
│ 飞书 │────▶│ 3000 端口 │────▶│ OpenClaw Gateway │
│ │ │ 七牛监听器 │ │ (17733 端口) │
└─────────┘ └──────────────┘ └──────────────────┘
├─ /upload 命令 → 七牛云上传
├─ /qiniu-config → 配置管理
└─ 其他消息 → 转发到 OpenClaw
```
**优势:**
- ✅ 七牛云功能独立,不依赖 OpenClaw 内部实现
- ✅ 实现简单,已经完成了
- ✅ 七牛云配置独立管理
**劣势:**
-**需要修改飞书开放平台配置**(请求地址)
- ❌ 增加了一层转发,可能引入延迟
- ❌ 转发可能失败,可靠性降低
- ❌ OpenClaw 无法获取完整的消息上下文
- ❌ 两个服务需要分别维护
---
### 方案 B保持现有配置不修改飞书请求地址
```
┌─────────┐ ┌──────────────────┐
│ 飞书 │────▶│ OpenClaw Gateway │
│ │ │ (17733 端口) │
└─────────┘ └──────────────────┘
├─ AI 处理普通对话
└─ 七牛命令 → ???
```
**优势:**
-**不需要修改飞书开放平台配置**
- ✅ 架构统一,所有消息由 OpenClaw 处理
- ✅ 消息上下文完整
- ✅ 只有一个服务,维护简单
**劣势:**
- ❌ 需要在 OpenClaw 中集成七牛云功能
- ❌ AI 无法直接处理文件附件(需要代码下载)
- ❌ 实现相对复杂
---
### 方案 C混合模式推荐
```
┌─────────┐ ┌──────────────────┐
│ 飞书 │────▶│ OpenClaw Gateway │
│ │ │ (17733 端口) │
└─────────┘ └──────────────────┘
├─ AI 处理普通对话
└─ 七牛命令 → HTTP 调用 3000 端口
七牛监听器
(仅处理命令)
```
**实现方式:**
1. **保持飞书请求地址不变**(指向 OpenClaw Gateway
2. **在 OpenClaw 中创建技能**,识别七牛云命令
3. **七牛监听器切换到"命令模式"**,只处理 API 调用,不直接接收飞书事件
4. **OpenClaw 通过 HTTP 调用七牛监听器**处理上传
**优势:**
-**不需要修改飞书开放平台配置**
- ✅ OpenClaw 保持完整的消息处理
- ✅ 七牛云功能独立实现
- ✅ 架构清晰,职责分离
**劣势:**
- ❌ 需要修改 OpenClaw 配置或创建技能
- ❌ 实现稍微复杂
---
## 🎯 推荐方案:方案 A修改请求地址
虽然方案 C 最优雅,但**方案 A 已经实现完成**,且有以下优点:
1. **已经实现**:代码已完成,测试通过
2. **简单可靠**:转发逻辑简单,故障点少
3. **独立部署**:七牛云功能可以独立于 OpenClaw 升级
### 实施步骤
1. **修改飞书开放平台请求地址**
```
http://47.83.185.237:3000
```
2. **验证 Token**保持不变:
```
qiniu_upload_token_2026
```
3. **测试**
- `/qiniu-config list` → 七牛云处理
- `/upload ...` → 七牛云处理
- 其他消息 → 转发到 OpenClaw
---
## 📋 决策建议
| 考虑因素 | 推荐方案 |
|---------|---------|
| **快速上线** | 方案 A ✅ |
| **不修改飞书配置** | 方案 B/C |
| **架构优雅** | 方案 C |
| **维护简单** | 方案 A ✅ |
| **可靠性** | 方案 A ✅ |
---
## 💡 最终建议
**使用方案 A**,原因:
1. 代码已完成并测试通过
2. 修改飞书配置只需要 1 分钟
3. 转发逻辑简单,可靠性高
4. 七牛云和 OpenClaw 可以独立演进
**如果你坚持不修改飞书配置**,我们可以实现方案 C但需要
- 在 OpenClaw 中创建技能来拦截七牛命令
- 修改七牛监听器为 API 模式
- 额外的工作量约 2-3 小时
---
## 🚀 下一步
**选择方案 A推荐**
1. 在飞书开放平台修改请求地址为 `http://47.83.185.237:3000`
2. 保存并等待验证成功
3. 在飞书中测试 `/qiniu-config list` 和普通对话
**选择方案 C不修改飞书**
1. 告诉我你的决定
2. 我会实现 OpenClaw 技能来拦截七牛命令
3. 修改七牛监听器为 API 模式
---
**你选择哪个方案?** 🍙