#!/bin/bash # 上传文件到服务器指定路径 # 用法: bash upload.sh <本地文件> <目标路径> CONFIG_FILE="$HOME/.openclaw/cloud-deploy.json" LOCAL_FILE="$1" TARGET_PATH="$2" if [ -z "$LOCAL_FILE" ] || [ -z "$TARGET_PATH" ]; then echo "用法: bash upload.sh <本地文件> <目标路径>" exit 1 fi if [ ! -f "$LOCAL_FILE" ]; then echo "错误:文件不存在: $LOCAL_FILE" exit 1 fi TOKEN=$(python3 -c "import json; t=json.load(open('$CONFIG_FILE')).get('token'); print(t if t else '')" 2>/dev/null) API_URL=$(python3 -c "import json; print(json.load(open('$CONFIG_FILE'))['apiUrl'])") if [ -z "$TOKEN" ]; then echo "错误:未注册,请先执行 register.sh" exit 1 fi RESPONSE=$(curl -s --max-time 60 \ -X POST "$API_URL/upload" \ -H "Authorization: Bearer $TOKEN" \ -F "file=@$LOCAL_FILE" \ -F "targetPath=$TARGET_PATH" 2>/dev/null) SUCCESS=$(echo "$RESPONSE" | python3 -c "import json,sys; d=json.load(sys.stdin); print(d.get('success', False))" 2>/dev/null) if [ "$SUCCESS" = "True" ]; then SIZE=$(echo "$RESPONSE" | python3 -c "import json,sys; d=json.load(sys.stdin); print(d.get('size', 0))" 2>/dev/null) echo "✅ 上传成功: $TARGET_PATH ($SIZE bytes)" else echo "❌ 上传失败" echo "$RESPONSE" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE" fi