高性能文件同步与备份工具,支持本地存储、WebDAV、S3 等多种存储后端。
![]() |
![]() |
|---|---|
| 主界面 | 任务配置 |
![]() |
![]() |
|---|---|
| 差异分析 | 同步进度 |
![]() |
![]() |
|---|---|
| 冲突处理 | 设置 |
![]() |
|---|
| 差异分析 |
- 多存储后端: 本地文件系统、WebDAV(坚果云、123云盘)、S3 兼容存储(AWS、MinIO、阿里云 OSS、七牛云)
- 灵活同步: 支持任意存储组合(本地↔本地、本地↔远程、远程↔远程)
- 同步模式:
- 双向同步 ↔ 源和目标双向同步
- 镜像同步 → 源完全复制到目标,删除多余文件
- 备份同步 → 仅从源复制新增/修改到目标
- 智能缓存: 远程存储文件列表缓存(可配置 0-2 小时),本地存储直接扫描
- 高性能: 可配置并行传输数(1-128),增量同步,可配置块大小流式传输
- 大文件支持: 支持 4GB+ 超大文件传输,可配置分块大小和流式阈值
- 冲突处理: 双向同步时支持手动选择保留源/目标/两者/跳过
- 同步预览: 同步前差异分析,显示将要执行的操作
- 现代 UI: 深色/浅色主题,实时进度显示,速度和 ETA 统计
| 类别 | 技术 |
|---|---|
| 前端 | React + TypeScript + TailwindCSS |
| 后端 | Rust + Tauri 2.0 |
| 数据库 | SQLite (sqlx) |
| 存储抽象 | OpenDAL + reqwest |
| 哈希校验 | blake3 |
| 异步运行时 | Tokio |
- Windows 10/11 (64-bit)
- 约 50MB 磁盘空间
npm install
npm run tauri devnpm run tauri build产物位于 src-tauri/target/release/bundle/
SyncTools/
├── src/ # 前端 React
│ ├── components/ # UI 组件
│ ├── hooks/ # 自定义 Hooks
│ └── lib/ # 工具函数、状态管理、类型定义
├── src-tauri/ # 后端 Rust
│ ├── src/
│ │ ├── commands/ # Tauri 命令
│ │ ├── core/ # 同步引擎、缓存、冲突处理
│ │ ├── db/ # 数据库模型
│ │ └── storage/ # 存储后端 (Local/S3/WebDAV)
│ └── migrations/ # 数据库迁移
└── package.json
默认位置: %APPDATA%/synctools/(可在设置中修改)
synctools.db- 任务配置、同步历史、文件状态config.json- 应用配置(日志、缓存 TTL 等)cache/- 远程存储文件列表缓存app.log- 应用日志(可配置大小限制)
- 本地 ↔ 本地: 直接文件复制
- 本地 ↔ 远程: 分块流式传输,实时进度显示
- 远程 ↔ 远程: 数据经本地内存中转(源 → 内存 → 目标)
针对大文件传输场景,实现了可配置的分块流式传输方案:
| 文件大小 | 传输方式 | 内存占用 |
|---|---|---|
| ≤ 阈值(默认 128MB) | 直接内存传输 | 文件大小 |
| > 阈值 | 分块流式传输 | 仅分块大小(默认 8MB) |
技术特点:
- 可配置分块大小(1-32MB),减少系统调用开销
- 可配置流式传输阈值(64MB-1GB)
- 流式 HTTP PUT,真实网速进度显示
- blake3 哈希校验,确保数据完整性
- 临时文件自动清理
注意: 远程到远程同步时,文件数据会加载到内存中转,大文件建议使用本地中转。
| 字段 | 值 |
|---|---|
| Bucket | 空间名称(如 my-bucket) |
| Region | 区域代码(如 cn-north-1) |
| Endpoint | http://s3-cn-north-1.qiniucs.com |
| Access Key | AK |
| Secret Key | SK |
| 字段 | 值 |
|---|---|
| Bucket | Bucket 名称 |
| Region | oss-cn-hangzhou 等 |
| Endpoint | https://oss-cn-hangzhou.aliyuncs.com |
| Access Key | AccessKey ID |
| Secret Key | AccessKey Secret |
| 选项 | 说明 | 默认值 |
|---|---|---|
| 并行传输数 | 同时传输的文件数 | 4 |
| 自动创建目录 | 目标不存在时自动创建 | 开启 |
| 远程缓存过期 | 远程存储文件列表缓存时间 | 30 分钟 |
| 分块大小 | 流式传输的块大小 | 8 MB |
| 流式传输阈值 | 启用流式传输的文件大小阈值 | 128 MB |
| 启用日志 | 记录应用日志到文件 | 开启 |
| 日志大小限制 | 单个日志文件最大大小 | 5 MB |
MIT License
ASLant






