一个基于 Web 的相机媒体备份工具,专为索尼 Alpha 系列相机用户设计。提供现代化界面、实时进度反馈和生产级数据安全保障。
| 功能 | 说明 |
|---|---|
| 🔒 数据完整性 | xxHash64 校验:拷贝后自动验证校验和,确保数据 0 误差 |
| 🛡️ 生产级健壮性 | 指数退避重试:IO 出错自动重试;磁盘空间预检查:防止中途溢出 |
| ⚡ 极速并发 | Worker Pool 模型:Async Queue 并发调度,压榨磁盘写入带宽 |
| 📊 全方位监测 | 系统动态看板:实时监控 CPU、内存占用及备份速率 |
| 📂 智能组织 | 按拍摄日期 (YYYY/YYYY-MM-DD) 自动归构,支持增量备份跳过 |
| 🌐 全语支持 | 中文 / English 实时切换,适配专业摄影师需求 |
| 🎨 硬核界面 | 相机 UI 风格,支持深色模式与毛玻璃视觉效果 |
# 添加 tap 源
brew tap yourusername/tap
# 安装
brew install sony-backup
# 启动服务器(自动打开浏览器)
sony-backup- 从 Releases 下载最新
SonyBackup-x.y.z-macOS.dmg - 打开 DMG 文件,拖动
SonyBackup.app到应用程序文件夹 - 双击
SonyBackup启动(自动打开浏览器)
环境要求
- Python 3.14+ (必须使用 uv 包管理器)
- macOS / Windows / Linux
源码安装
# 1. 克隆仓库
git clone https://github.com/yourusername/sony-backup
cd sony-backup
# 2. 安装依赖
uv sync
# 3. 启动开发服务器
uv run python main.py
# 4. 访问界面
open http://127.0.0.1:5001详见 CONTRIBUTING.md 了解开发流程
| 类型 | 格式 |
|---|---|
| RAW | .ARW (Sony Alpha RAW) |
| 照片 | .JPG, .JPEG, .HEIC, .HIF |
| 视频 | .MP4, .MOV (XAVC S / XAVC HS) |
系统支持根据硬件配置自动调优:
- 自动并发数:根据 CPU 物理核心数动态分配
CONCURRENT_COPIES - 动态缓冲区:根据系统剩余 RAM 自动调整
COPY_BUFFER_SIZE(64MB ~ 512MB) - 校验开关:可配置
ENABLE_CHECKSUM全局开启/关闭
- 后端: FastHTML + Starlette (SSE 实时双工)
- 核心: Asyncio Queue (生产者-消费者模型)
- 前端: Vanilla JS + MonsterUI (CSS-in-JS & Glassmorphism)
- 运维: GitHub Actions CI (自动化测试流水线)
- 核心 Python 业务代码位于
sony_backup/包。 - 历史兼容入口仍保留在根目录(
main.py/config.py等)。 - 详细结构与维护约定见 PROJECT_STRUCTURE.md。
uv run python -m pytest tests/# 一键生成 GB 级的模拟 SD 卡数据环境
uv run python scripts/create_test_data.py- 只读源文件 - 严格执行 read-only 扫描,绝不重命名或删除源媒体。
- 原子化操作 - 校验失败自动清理脏文件并重试,确保目标目录清洁。
- 元数据克隆 - 完美保留像素之外的
Exif与文件系统时间戳。
MIT License