- 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/
42 lines
1.3 KiB
Bash
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
|