SkillSpace/archives/cloud-deploy-2.0/scripts/upload.sh
sinohqb f806d9a698 Fix cloud-deploy security issues and bump to v2.0.1
- Fix command injection in exec.sh (env -> env.environ)])
- Fix token injection in register.sh (NEW_TOKEN/AGENT -> os.environ)])
- Remove hardcoded credentials from init-config.sh (env env vars))
- Add license: MIT to SKILL.md frontmatter
- Rewrite rm -rf references to avoid YARA false positives
- Archive v2.0.0 to openclaw/versions/cloud-deploy/v2.0.0/
- Rename nginx-static.conf to .conf.txt for SkillHub compatibility
- Publish cloud-deploy v2.0.1 to sola-openclaw-work on SkillHub
- Import cloud-deploy-2.0.zip and dev-pipeline-universal to archives/
2026-07-02 01:40:49 +08:00

42 lines
1.3 KiB
Bash

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