优化: 改为从Release下载预编译上传工具

- 不再需要服务器Python环境
- 支持从Gitee Release直接下载exe
- 自动检测操作系统下载对应版本
- 支持wget和curl两种下载方式
- 下载失败时友好提示,不影响部署
This commit is contained in:
2025-11-12 00:42:44 +08:00
parent 160201b942
commit c76808f03b

View File

@@ -1138,36 +1138,63 @@ create_data_directories() {
} }
build_upload_tool() { build_upload_tool() {
print_step "打包上传工具..." print_step "下载上传工具..."
cd "${PROJECT_DIR}/upload-tool" cd "${PROJECT_DIR}/upload-tool"
# 检查build.sh是否存在 # 检查是否存在可执行文件
if [[ ! -f "build.sh" ]]; then
print_warning "build.sh不存在跳过上传工具打包"
echo ""
return 0
fi
# 添加执行权限
chmod +x build.sh
# 检查是否已存在exe或可执行文件
if [[ -f "dist/玩玩云上传工具.exe" ]] || [[ -f "dist/玩玩云上传工具" ]]; then if [[ -f "dist/玩玩云上传工具.exe" ]] || [[ -f "dist/玩玩云上传工具" ]]; then
print_success "上传工具已存在,跳过打包" print_success "上传工具已存在,跳过下载"
echo "" echo ""
return 0 return 0
fi fi
# 执行打包 # 创建dist目录
print_info "开始打包上传工具(这可能需要几分钟)..." mkdir -p dist
if bash build.sh > /dev/null 2>&1; then
print_success "上传工具打包完成" # 下载地址(可配置)
TOOL_DOWNLOAD_URL_WINDOWS="https://gitee.com/yu-yon/vue-driven-cloud-storage/releases/download/v1.2.5/玩玩云上传工具.exe"
TOOL_DOWNLOAD_URL_LINUX="https://gitee.com/yu-yon/vue-driven-cloud-storage/releases/download/v1.2.5/玩玩云上传工具"
# 根据操作系统选择下载链接
if [[ "$OS" == "ubuntu" ]] || [[ "$OS" == "debian" ]] || [[ "$OS" == "centos" ]] || [[ "$OS" == "rhel" ]]; then
DOWNLOAD_URL="$TOOL_DOWNLOAD_URL_LINUX"
TOOL_FILENAME="玩玩云上传工具"
print_info "检测到Linux系统下载Linux版本上传工具..."
else else
print_warning "上传工具打包失败用户仍可正常使用SFTP上传" DOWNLOAD_URL="$TOOL_DOWNLOAD_URL_WINDOWS"
print_info "如需上传工具,请手动运行: cd ${PROJECT_DIR}/upload-tool && bash build.sh" TOOL_FILENAME="玩玩云上传工具.exe"
print_info "下载Windows版本上传工具..."
fi fi
# 尝试下载
if command -v wget &> /dev/null; then
wget -q --show-progress -O "dist/${TOOL_FILENAME}" "$DOWNLOAD_URL" || {
print_warning "上传工具下载失败"
print_info "用户仍可使用网页上传本地存储或SFTP客户端"
echo ""
return 0
}
elif command -v curl &> /dev/null; then
curl -L -o "dist/${TOOL_FILENAME}" "$DOWNLOAD_URL" || {
print_warning "上传工具下载失败"
print_info "用户仍可使用网页上传本地存储或SFTP客户端"
echo ""
return 0
}
else
print_warning "未找到wget或curl无法下载上传工具"
print_info "用户仍可使用网页上传本地存储或SFTP客户端"
echo ""
return 0
fi
# 添加执行权限Linux版本
if [[ "$TOOL_FILENAME" != *.exe ]]; then
chmod +x "dist/${TOOL_FILENAME}"
fi
print_success "上传工具下载完成: dist/${TOOL_FILENAME}"
echo "" echo ""
} }