NexusPush App 是一款基于 Tauri + Vue 3 开发的桌面客户端工具,用于高效地将本地文件或文件夹上传到远程服务器,并支持在上传完成后执行远程命令。
- 文件/文件夹上传:支持上传单个文件或整个文件夹
- 进度显示:实时显示上传进度百分比与进度条
- 远程命令执行:上传完成后自动在远程服务器执行指定命令,并等待命令执行结束
- 主题切换:支持亮/暗主题,并记住选择
- 配置自动保存:自动缓存最近一次输入(服务器地址、用户名、密码、远程路径、命令),下次启动自动恢复
- 精美界面:圆角设计、阴影与渐变、响应式布局
- 前端框架:Vue 3 + TypeScript
- 构建工具:Vite
- 桌面框架:Rust + Tauri
- 远程连接:SSH/SFTP (通过 Rust ssh2 库实现)
# 使用 cnpm/npm 安装依赖,下同
cnpm install# 启动开发服务器
cnpm run tauri dev# 构建发布版本
cnpm run tauri build- 源图标位于
src-tauri/icons/nexus-push-icon.svg(1024×1024,透明背景)。 - 生成多尺寸平台图标(icns/ico/png):
cnpm run icon生成的文件将覆盖 src-tauri/icons/ 下对应图标。
- 选择本地文件或文件夹:点击 "选择文件" 或 "选择文件夹" 按钮
- 输入远程服务器信息:填写服务器地址、用户名、密码和远程路径
- 输入远程命令(可选):上传完成后要在远程服务器执行的命令;会等待命令完成
- 开始上传:点击 "开始上传" 按钮
- 查看进度:上传过程中可实时查看进度条和百分比
- 目录上传规则:若选择的是本地目录
abc,远端最终结构为remote_path/abc/...
应用配置保存在用户目录的配置文件夹中:
- Windows:
%APPDATA%\nexus-push-app\config.json - macOS:
~/Library/Application Support/nexus-push-app/config.json - Linux:
~/.config/nexus-push-app/config.json
说明:打包产物不会包含该配置文件;首次运行时若不存在会按程序逻辑创建。密码等仅保存在本机用户目录,请注意机器物理安全。
- 确保远程服务器已开启 SSH 服务(默认端口 22)
- 上传大文件或文件夹时可能需要较长时间
- 远程命令需要有足够的权限执行
- 安装依赖:
cnpm install- 生成平台图标(如有修改):
cnpm run icon- 前端构建:
cnpm run build- 打包应用:
cnpm run tauri build- 产物位置:
src-tauri/target/release/bundle/
- Rust 发布配置(
src-tauri/Cargo.toml)使用 release 优化(lto、opt-level、panic = "abort")。 - 前端生产构建禁用 sourcemap、启用 treeshake、压缩 CSS/JS;避免将大体积样例资源置于
public/。 - 图标资源统一由
cnpm run icon生成,确保只包含必要尺寸。
- 默认窗口尺寸与最小高度在
src-tauri/tauri.conf.json的app.windows[0]中配置(如width,height,minHeight)。
- 账号/密码错误:弹出“用户名或密码错误,请检查后重试。”
- 检查输入的用户名/密码;尝试用终端
ssh user@host验证。
- 检查输入的用户名/密码;尝试用终端
- 无法连接服务器/超时:
- 检查服务器地址、网络连通性、防火墙与 22 端口是否开放。
- 无法建立 SFTP 会话:
- 确认服务器启用了 SFTP 子系统,或具有对应权限。
- 上传目录但远端没有顶层文件夹:
- 现在已修复:当选择目录时,远端会创建
remote_path/<本地目录名>再上传其内容。
- 现在已修复:当选择目录时,远端会创建
MIT
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 <script setup> SFCs, check out the script setup docs to learn more.