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

138
deploy.sh Executable file
View File

@@ -0,0 +1,138 @@
#!/bin/bash
# 七牛云上传 Skill - 部署脚本
# 用途:将 Skill 部署到其他 OpenClaw 服务器
set -e
SKILL_NAME="qiniu-uploader"
SKILL_DIR="$HOME/.openclaw/workspace/skills/$SKILL_NAME"
CREDENTIALS_DIR="$HOME/.openclaw/credentials"
echo "🍙 七牛云上传 Skill - 部署工具"
echo "════════════════════════════════════════════════════"
echo ""
# 检查是否提供了目标服务器
if [ -z "$1" ]; then
echo "用法:$0 <目标服务器> [目标路径]"
echo ""
echo "示例:"
echo " $0 user@192.168.1.100"
echo " $0 user@example.com:~/.openclaw/workspace/skills/"
echo ""
echo "或者,如果是本地部署到其他 OpenClaw 实例:"
echo " $0 local"
exit 1
fi
TARGET="$1"
TARGET_PATH="${2:-$HOME/.openclaw/workspace/skills/}"
if [ "$TARGET" = "local" ]; then
echo "📦 本地部署模式"
echo ""
# 检查 Skill 目录是否存在
if [ ! -d "$SKILL_DIR" ]; then
echo "❌ Skill 目录不存在:$SKILL_DIR"
exit 1
fi
# 创建凭证目录
mkdir -p "$CREDENTIALS_DIR"
# 创建配置模板
CONFIG_FILE="$CREDENTIALS_DIR/qiniu-config.json"
if [ ! -f "$CONFIG_FILE" ]; then
echo "📝 创建配置模板..."
cat > "$CONFIG_FILE" << 'EOF'
{
"buckets": {
"default": {
"accessKey": "YOUR_ACCESS_KEY_HERE",
"secretKey": "YOUR_SECRET_KEY_HERE",
"bucket": "your-bucket-name",
"region": "z2",
"domain": "https://your-cdn-domain.com"
}
}
}
EOF
echo "✅ 配置模板已创建:$CONFIG_FILE"
echo ""
echo "⚠️ 请编辑配置文件,填入你的七牛云密钥:"
echo " nano $CONFIG_FILE"
echo ""
else
echo "✅ 配置文件已存在:$CONFIG_FILE"
fi
echo "🎉 本地部署完成!"
echo ""
echo "下一步:"
echo " 1. 编辑配置文件nano $CONFIG_FILE"
echo " 2. 重启 Gateway: openclaw gateway restart"
echo " 3. 测试上传:/upload /test/file.txt"
else
echo "📦 远程部署模式"
echo "目标:$TARGET:$TARGET_PATH"
echo ""
# 检查 Skill 目录是否存在
if [ ! -d "$SKILL_DIR" ]; then
echo "❌ Skill 目录不存在:$SKILL_DIR"
exit 1
fi
# 打包 Skill
echo "📦 打包 Skill..."
cd "$HOME/.openclaw/workspace/skills/"
tar -czf "/tmp/${SKILL_NAME}.tar.gz" "$SKILL_NAME/"
# 传输到目标服务器
echo "📤 传输到目标服务器..."
scp "/tmp/${SKILL_NAME}.tar.gz" "$TARGET:/tmp/"
# 在目标服务器上解压
echo "📥 在目标服务器上解压..."
ssh "$TARGET" << 'ENDSSH'
mkdir -p ~/.openclaw/workspace/skills/
tar -xzf /tmp/qiniu-uploader.tar.gz -C ~/.openclaw/workspace/skills/
rm /tmp/qiniu-uploader.tar.gz
echo "✅ Skill 已部署到 ~/.openclaw/workspace/skills/qiniu-uploader/"
ENDSSH
# 创建配置说明
echo ""
echo "📝 请在目标服务器上配置七牛云凭证:"
echo ""
echo "ssh $TARGET << 'ENDSSH'"
echo "mkdir -p ~/.openclaw/credentials/"
echo "cat > ~/.openclaw/credentials/qiniu-config.json << 'EOF'"
echo "{"
echo ' "buckets": {'
echo ' "default": {'
echo ' "accessKey": "YOUR_ACCESS_KEY_HERE",'
echo ' "secretKey": "YOUR_SECRET_KEY_HERE",'
echo ' "bucket": "your-bucket-name",'
echo ' "region": "z2",'
echo ' "domain": "https://your-cdn-domain.com"'
echo ' }'
echo ' }'
echo "}"
echo "EOF"
echo "openclaw gateway restart"
echo "ENDSSH"
echo ""
# 清理临时文件
rm -f "/tmp/${SKILL_NAME}.tar.gz"
echo "🎉 远程部署完成!"
fi
echo ""
echo "════════════════════════════════════════════════════"
echo "📖 详细文档:$SKILL_DIR/INSTALL.md"