全流程自动化备份与数据存证系统
产品定位
DiskHop 是一款专为 macOS 设计的媒体素材备份助手,专注于提供安全、可靠、可追溯的文件备份体验。它的核心设计原则是:源盘只读、字节级验证、三路报告存证——确保每一份备份都是 100% 完整且可审计的。
核心理念
DiskHop 面向的是那些对数据完整性有严格要求的用户:
- 影视制作人员:摄影机卡素材需要安全备份到多个目的地
- 摄影师:大量 RAW 文件需要可靠归档
- 内容创作者:项目文件需要多重备份保障
- 数据管理员:需要完整的备份审计报告
一句话总结:备份不是复制,是存证。
技术架构
DiskHop 基于 Electron + electron-vite 构建,采用 Python 后端 + React/TypeScript 前端的架构:
| 层级 | 技术 | 职责 |
|---|---|---|
| 后端 | Python 3.11+ | 文件拷贝引擎、字节级校验、报告生成 |
| 前端 | React 18 + TypeScript + Tailwind CSS | 实时拷贝看板、设置管理、历史记录 |
| 报告 | Pillow + ReportLab | PNG / PDF 目录树报告渲染 |
| 打包 | PyInstaller | Universal 2 .app(支持 M 芯片 + Intel) |
核心功能
🔒 严格只读源访问
代码层面禁止写入源盘,从根源上防止误操作导致源数据损坏。这是 DiskHop 最重要的安全设计。
📊 实时拷贝看板
备份过程中提供完整的实时监控:
- 进度条(基于 rsync
--info=progress2全局进度) - 写入速度
- 已传输量
- ETA 剩余时间
- 5 行滚动日志
✅ 字节级比对验证
备份完成后自动执行双重校验:
- 文件数量校验
- 总字节数校验
- 不一致立即中断并告警
📋 三路报告分发
每份备份自动生成三份报告:
- 自动存档至备份目录
- 自动拷贝至
~/Downloads - 手动另存为(用户自选路径)
📁 目录树报告
支持三种格式的目录树报告:
- TXT:纯文本目录结构
- PNG:可视化目录树(含文件夹大小标注)
- PDF:专业格式报告(含文件夹大小标注)
🗂️ 路径预设管理
在设置页增删改目的地别名,常用备份路径一键选择,提升重复备份效率。
📜 备份历史
持久化记录每次备份任务的状态,包括:
- 任务时间
- 源路径与目的地
- 文件数量与总大小
- 校验结果
- 任务状态(成功/失败/中断)
使用流程
选择源目录(素材卡/文件夹)
↓
选择目的地(支持多目的地)
↓
开始备份
↓
实时监控:进度条 + 速度 + ETA + 日志
↓
备份完成 → 自动字节级校验
↓
校验通过 → 三路报告自动分发
↓
查看历史记录
数据存储
所有数据持久化至 ~/.mediaflow_backup/:
| 文件 | 说明 |
|---|---|
config.json | 目的地预设配置 |
history.json | 备份历史记录 |
跨平台支持
| 平台 | 状态 |
|---|---|
| macOS (Apple Silicon + Intel) | ✅ 支持(Universal 2) |
技术亮点
- rsync 引擎:使用
--info=progress2获取全局传输进度,避免单文件进度条跳动 - Mutex 串行化:历史记录写入通过 Promise 链串行化,防止并发竞态丢失数据
- Error Boundary:前端集成 React Error Boundary,提升应用稳定性
- Webhook 重试:支持 3 次重试 + 指数退避(1s/2s/3s),确保通知送达
- plist 解析优化:使用非贪婪匹配处理 CDATA 内容,提升系统信息解析可靠性
与 KocardPro 的关系
DiskHop 是 KocardPro 的前身/轻量版。DiskHop 专注于通用文件备份场景,而 KocardPro 在此基础上扩展了影视制作 DIT 专业工作流,包括摄影机卡智能识别、项目管理、哈希校验、PDF 报告等高级功能。
许可证
MIT License
DiskHop — 备份不是复制,是存证。
© 2026sexyfeifan