# CopyMaster **Repository Path**: luo-yinhe/copy-master ## Basic Information - **Project Name**: CopyMaster - **Description**: 一款面向摄影师和视频创作者的素材安全拷贝工具。支持多路径并行备份、SHA256/MD5文件校验、FFmpeg离线转码、任务队列管理、断点续传、双主题与中英文双语。纯Go + Wails构建,单文件16MB,全平台支持,零外部依赖。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-19 - **Last Updated**: 2026-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

CopyMaster Logo

⚡ CopyMaster

一张卡 → 多个目标,自动校验,离线转码
跨平台素材拷贝管理工具

Go Wails SQLite Platform License

--- ## 🚀 为什么需要 CopyMaster? 摄影、摄像工作者每天都在重复一件事:**把存储卡的素材拷到硬盘**。 拷一张卡到一个硬盘?简单。但你要拷到 3 个备份盘、还要校验完整性、还要转一份代理剪辑——这就麻烦了。 **CopyMaster 就是为解决这个问题而生的。** ``` 一张 SD 卡 ──┬── 📁 硬盘 A(完整备份) ├── 📁 硬盘 B(完整备份) ├── 📁 NAS(完整备份) └── 🎬 自动转码代理版本 │ └── ✅ SHA-256 校验,100% 数据一致 ``` --- ## 🆕 最近更新 > **v0.3.0** — 多源选择 · 增强进度 · 优化报告 | 改动 | 详情 | |------|------| | 🗂️ **多源混合选择** | 支持同时选择多个文件和文件夹传输,不再限制单一源路径。手动输入、设备快捷添加、一键清空,灵活组合 | | 📊 **增强传输进度** | 实时显示传输速度(MB/s)、剩余时间 ETA、文件进度(X/N)、当前文件名与目标路径,进度条渐变动画 | | 📋 **优化传输报告** | 新增各目的地统计卡片(文件数/通过/失败/大小)、文件耗时列、任务详情区,HTML/CSV 双格式全面升级 |
更多 v0.3.0 改进 - 恢复磁盘空间预检,空间不足时拒绝启动 - 冲突跳过模式验证文件大小,确保目标完整 - 转码输出修正到目标目录,失败自动清理 - 全组件暗色主题适配(CSS 变量) - i18n 补全 27 个翻译键,消除硬编码中文 - JSON 解析器从手写改为标准库
--- ## ✨ 核心功能 | 功能 | 说明 | |------|------| | 🔀 **多路径并行备份** | 1 张卡 → N 个目标同时写入,Worker Pool 并发 | | 🗂️ **多源混合选择** | 多个文件 + 文件夹任意组合,灵活传输 | | 🔐 **SHA-256 / MD5 校验** | 拷贝前后自动哈希比对,确保数据零损失 | | 🎬 **FFmpeg 离线转码** | 备份同时转码为代理/存档/预览格式 | | 💾 **断点续传** | 大文件中断后从断点恢复,不从头开始 | | ⚡ **磁盘空间预检** | 拷贝前检测目标盘空间,避免中途失败 | | 🔄 **冲突处理** | 跳过 / 覆盖 / 重命名,三种策略任选 | | 📋 **预设管理** | 常用路径组合保存为预设,一键启动 | | 📊 **导出报告** | HTML / CSV 报告,含目的地统计 + 文件耗时 | | 🌓 **暗色 / 亮色主题** | 双主题切换,护眼更舒适 | | 🌍 **中 / English 双语** | 80+ 条翻译,一键切换语言 | | 📝 **操作审计日志** | 所有操作留痕,便于追溯 | --- ## 📸 界面预览 ``` ┌──────────────────────────────────────────────────────┐ │ ⚡ CopyMaster [拷贝] [转码] [报告] [设置] │ ├──────────────────────────────────────────────────────┤ │ │ │ 源路径 [3] [+ 文件夹] [+ 文件] [清空] │ │ ┌──────────────────────────────────────────────┐ │ │ │ 📁 D:\DCIM\100CANON ✕│ │ │ │ 📄 E:\BGM\background.mp3 ✕│ │ │ │ 📁 F:\Footage\Interview ✕│ │ │ └──────────────────────────────────────────────┘ │ │ [手动输入路径... ] [添加] │ │ 可用设备: [💾 Drive C:] [💾 Drive D:] [💾 Drive E:] │ │ │ │ 目标路径 [2] [+ 文件夹] │ │ ☑ HDD Backup (D:) ☑ NAS (\\192.168.1.100\bk) │ │ [D:\backup] [\\192.168.1.100\backup] │ │ │ │ [🚀 开始备份] [取消任务] [保存预设] │ │ │ │ ── 正在传输 ── │ │ 文件 12 / 47 | 68% │ │ 速度: 112.5 MB/s 剩余: 1.2 GB 预计: 11秒 │ │ ████████████████░░░░░░░░░░░░░ 68% │ │ 📄 DSC_0423.MOV → HDD Backup │ │ │ └──────────────────────────────────────────────────────┘ ``` --- ## 🛠️ 技术栈 | 层 | 技术 | 说明 | |----|------|------| | 🖥️ 后端 | **Go 1.21+** | 高并发 I/O,零 CGO 依赖 | | 🎨 前端 | **Vue 3 + TypeScript** | 响应式 UI,组件化架构 | | 📦 桌面 | **Wails v2** | 轻量级跨平台桌面框架 | | 💾 数据库 | **SQLite** | `modernc.org/sqlite`,纯 Go 实现 | | 🎬 转码 | **FFmpeg CLI** | 命令行调用,支持 H.264/H.265/ProRes | | 🧪 测试 | **Go testing** | 27 个测试用例,覆盖核心模块 | | 🚀 CI/CD | **Gitee Go** | 自动化构建、测试、跨平台打包 | --- ## 📁 项目结构 ``` copymaster/ ├── app.go # 🎯 应用入口 & Wails RPC ├── main.go # 🚀 程序启动 ├── internal/ │ ├── copier/ # ⚡ 多路径拷贝引擎 │ ├── checksum/ # 🔐 哈希校验 (SHA256/MD5) │ ├── transcoder/ # 🎬 FFmpeg 转码封装 │ ├── reporter/ # 📊 报告生成 (HTML/CSV) │ ├── queue/ # 📋 任务队列管理 │ ├── preset/ # 💾 预设管理 │ ├── filter/ # 🔍 文件过滤 │ ├── disk/ # 💿 磁盘空间检测 │ ├── logger/ # 📝 日志 & 审计 │ ├── storage/ # 🗄️ SQLite 数据层 │ └── version/ # 🔍 版本检查 ├── frontend/ # 🎨 Vue 3 前端 ├── docs/ # 📚 21 份文档 ├── scripts/ # 🔧 构建脚本 ├── Makefile # ⚙️ 一键构建 └── .gitee-ci.yml # 🚀 CI/CD 流水线 ``` --- ## ⚡ 快速开始 ### 环境要求 | 工具 | 最低版本 | 安装方式 | |------|----------|----------| | Go | 1.21+ | `winget install GoLang.Go` / `brew install go` | | Node.js | 18+ | `winget install OpenJS.NodeJS.LTS` / `brew install node@18` | | Wails CLI | 2.12.0 | `go install github.com/wailsapp/wails/v2/cmd/wails@v2.12.0` | 详细安装指南见 [docs/ENVIRONMENT.md](docs/ENVIRONMENT.md) ### 安装依赖 ```bash git clone https://gitee.com/luo-yinhe/copymaster.git cd copymaster make deps ``` ### 开发模式 ```bash make dev ``` ### 本地预构建验证 ```bash # 自动检查版本、格式、lint、测试、构建 make pre-check ``` ### 构建发布 ```bash # 当前平台 make build # 全平台 make build-all ``` --- ## 🚀 CI/CD 流水线 项目使用 Gitee Go 自动化流水线,push 或 merge request 到 main/master 时自动触发: ``` setup → lint → test → build ``` | 阶段 | 内容 | |------|------| | setup | 安装 Node.js、Wails CLI、golangci-lint | | lint | gofmt 格式检查、go vet 静态分析、golangci-lint | | test | 单元测试 + 竞态检测 + 覆盖率报告 | | build | 跨平台构建 Windows/macOS/Linux,产物保存 7 天 | CI 使用 `golang:1.21` 官方镜像,与本地开发环境版本一致。 详细说明见 [docs/GITEE-CI-GUIDE.md](docs/GITEE-CI-GUIDE.md) --- ## 📚 文档 | 文档 | 说明 | |------|------| | [📖 用户手册](docs/USER_GUIDE.md) | 安装、操作、FAQ | | [🏗️ 架构设计](docs/ARCHITECTURE.md) | 系统架构 & 模块职责 | | [🔌 API 文档](docs/API.md) | Wails 绑定接口 | | [🔨 构建指南](docs/BUILD.md) | 多平台构建说明 | | [📝 开发规范](docs/DEVELOPMENT.md) | 编码标准 & 工作流 | | [🚀 发布清单](docs/RELEASE_CHECKLIST.md) | 版本发布前检查 | | [📋 更新日志](docs/CHANGELOG.md) | 版本更新记录 | | [⚙️ 环境配置](docs/ENVIRONMENT.md) | 开发环境安装指南 | | [🔧 CI/CD 指南](docs/GITEE-CI-GUIDE.md) | Gitee Go 流水线说明 | --- ## 🏗️ 构建状态 | 指标 | 状态 | |------|------| | ✅ 测试通过 | 27/27 | | ✅ CGO 禁用 | 无外部 C 依赖 | | ✅ 跨平台 | Windows / macOS / Linux | | ✅ 构建产物 | 16MB 单文件 | | ✅ 离线运行 | 不依赖公网服务 | --- ## 📄 许可证 [BSL 1.1 (Business Source License)](LICENSE) © 2026 罗银河 | 使用场景 | 是否免费 | 条件 | |----------|---------|------| | 🎓 个人学习 / 研究 / 爱好 | ✅ 完全免费 | 无限制 | | 🔧 非商业二开 | ✅ 免费 | 保留著作权和协议 | | 💼 商业使用 | ⚠️ 需授权 | [联系作者](mailto:yhkjsj@foxmail.com) 获取商业授权 | | 🏢 企业内部使用 | ⚠️ 需授权 | [联系作者](mailto:yhkjsj@foxmail.com) 获取商业授权 | | 📦 二开并分发 | ⚠️ 需开源 | 必须公开全部源码,或获取商业授权 | | 🔀 贡献 PR | ✅ 欢迎 | 贡献代码即同意同等授权 | > **3 年后自动转为 MIT 协议**(2029-06-19 起),届时可完全自由使用。 ---

⭐ 如果 CopyMaster 对你有帮助,请给个 Star 支持一下!

📧 商业授权咨询:yhkjsj@foxmail.com