#!/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"