GeoDownloader v3.6.0
v3.6.0 - 缓存目录安全迁移
本版本新增类似 Steam 游戏迁移的缓存目录迁移功能,帮助用户将占用系统盘空间的瓦片缓存完整迁移到其他磁盘。迁移过程以数据安全为优先,原缓存默认保留,不会因升级或切换目录自动删除。
缓存目录迁移
- 设置页显示当前缓存目录,并提供“迁移”入口。
- 迁移前检查目标目录可写性、剩余磁盘空间、路径冲突和正在运行的下载任务。
- 空目录可直接作为新缓存目录;非空普通目录会使用其下的
GeoDownloader/cache子目录,避免混入用户已有文件。 - 迁移
.mbtiles及其 SQLite-wal、-shm文件,并实时显示复制和校验进度。 - 支持取消迁移;未完成的临时文件不会被当作有效缓存使用。
数据安全与恢复
- 采用“复制、校验、切换”的两阶段流程,复制或校验失败时不会修改当前缓存配置。
- 对迁移后的 MBTiles 执行文件大小、SQLite 完整性和瓦片数量校验。
- 配置切换失败时自动回滚到原缓存目录。
- 保存迁移状态,应用异常退出后可在下次启动时恢复或清理未完成迁移。
- 迁移期间暂停新的缓存读写,并等待已有缓存操作结束,避免数据库文件在复制时继续变化。
- 原缓存默认保留;仅在用户二次确认后删除已识别的缓存文件,目录中的其他文件不会被删除。
交互优化
- 迁移弹窗按“复制”和“校验”分别展示当前文件、文件数量和进度,避免校验阶段出现误导性的 100% 复制进度。
- 修复模态遮罩显示时顶部标题栏无法拖动窗口的问题;按钮和链接仍保持正常点击行为。
- 启动恢复完成后在设置页显示结果和可执行的清理操作。
验证
- Rust 单元测试覆盖取消、写入失败、多 MBTiles 文件、提交回滚、启动恢复和路径校验。
- 通过 Rust 离线测试与检查、前端生产构建,以及本次变更文件的 ESLint 检查。
完整变更:v3.5.3...v3.6.0