功能特性: - 支持 /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
139 lines
3.8 KiB
Bash
Executable File
139 lines
3.8 KiB
Bash
Executable File
#!/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"
|