Files
openclaw-skill-qiniu/ARCHITECTURE.md
daoqi 1aeae9cc51 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
2026-03-07 16:02:18 +08:00

172 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🍙 七牛云上传 - 架构方案对比
## 现状
- **飞书开放平台**:事件订阅已配置,使用长连接/回调模式
- **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 模式
---
**你选择哪个方案?** 🍙