目录
同步备份功能说明(PRD表格版)
1. 功能概述
2. 备份功能点总表
3. 创建备份任务参数表
3.1 创建接口
3.2 入参定义
4. 产品规则说明表
4.1 增量 / 全量规则
4.2 排除规则
4.3 任务状态
5. 事件返回字段表
5.1 进度事件 backup:progress
5.2 完成事件 backup:completed
5.3 错误事件 backup:error
6. 任务列表字段表
7. 典型业务流程表
7.1 手动备份流程
7.2 定时备份流程
7.3 运行中控制流程
8. PRD 可直接引用的结论
同步备份功能说明(PRD表格版)
整理来源:[[我的笔记/NAS需求文档/同步备份/备份功能说明]]
原始依据:[[我的笔记/NAS需求文档/同步备份/API_REFERENCE]]
用途:用于产品需求文档快速引用
1. 功能概述
| 项目 | 说明 |
|---|
| 功能名称 | 同步备份 |
| 功能目标 | 将本地指定目录备份到设备指定目录,并支持任务化管理 |
| 任务模式 | 创建任务 + 事件推送 + 任务管理 |
| 支持的配置项 | 增量备份、排除规则、定时备份 |
| 任务结果反馈 | 实时进度、完成结果、错误信息 |
| 任务管理能力 | 列表查看、暂停、恢复、取消、删除 |
2. 备份功能点总表
| 功能模块 | 功能点 | 是否支持 | 说明 |
|---|
| 任务创建 | 新建备份任务 | 是 | 指定源目录、目标目录、备份配置 |
| 备份模式 | 增量备份 | 是 | incremental 默认 true |
| 备份模式 | 全量备份 | 是 | 显式传 incremental: false |
| 规则配置 | 排除规则 | 是 | exclude 为 string[],使用 glob 模式 |
| 计划执行 | 定时备份 | 是 | schedule 使用 cron 表达式 |
| 执行反馈 | 实时进度 | 是 | 返回百分比、速度、已传输大小、剩余时间、当前文件 |
| 执行反馈 | 完成统计 | 是 | 返回耗时、总文件数、总大小 |
| 执行反馈 | 错误通知 | 是 | 返回错误信息和可选错误码 |
| 任务管理 | 任务列表 | 是 | 可查看任务状态、进度、最近执行时间、下次执行时间 |
| 任务管理 | 暂停任务 | 是 | 支持运行中暂停 |
| 任务管理 | 恢复任务 | 是 | 支持暂停后恢复 |
| 任务管理 | 取消任务 | 是 | 支持取消,但取消后的状态值未明示 |
| 任务管理 | 删除任务 | 是 | 支持删除任务 |
| 辅助能力 | 完成后系统通知 | 是 | 示例中通过 notification:show 实现 |
3. 创建备份任务参数表
3.1 创建接口
| 项目 | 说明 |
|---|
| 接口 | backup:create |
| 调用方式 | ipcRenderer.invoke('backup:create', payload) |
| 返回值 | taskId: string |
| 说明 | 创建后通过事件监听进度、完成和错误 |
3.2 入参定义
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|
source | string | 是 | - | 本地源路径 |
destination | string | 是 | - | 设备目标路径 |
config.incremental | boolean | 否 | true | 是否增量备份 |
config.exclude | string[] | 否 | - | 排除规则,glob 模式 |
config.schedule | string | 否 | - | 定时计划,cron 表达式 |
4. 产品规则说明表
4.1 增量 / 全量规则
| 规则项 | 结论 | 说明 |
|---|
| 默认备份方式 | 增量 | incremental 默认值为 true |
| 是否可改 | 可以 | incremental 是可选布尔字段 |
| 改为全量方式 | 显式设置 incremental: false | 创建任务时传入 |
| 当前未明确点 | 有 | “全量”具体是全复制、全覆盖还是全快照,文档未展开 |
4.2 排除规则
| 规则项 | 结论 | 说明 |
|---|
| 规则类型 | glob 模式 | 文档注释明确说明 |
| 是否支持多条 | 支持 | exclude 类型为 string[] |
| 是否可排除文件类型 | 可以 | 例:*.tmp |
| 是否可排除文件夹 | 可以 | 例:node_modules/** |
| 是否可混合配置 | 可以 | 可同时传文件规则和目录规则 |
| 当前未明确点 | 有 | 是否支持取反、完整 glob 变体、路径匹配基准、UI 交互方式均未展开 |
4.3 任务状态
| 状态 | 含义 | 备注 |
|---|
idle | 空闲 | 已创建未运行或等待运行 |
running | 运行中 | 正在执行备份 |
paused | 已暂停 | 可恢复 |
completed | 已完成 | 成功结束 |
error | 异常 | 执行失败 |
补充:文档中提供了 backup:cancel,但未明确取消后的状态字段名称。
5. 事件返回字段表
5.1 进度事件 backup:progress
| 字段 | 类型 | 说明 |
|---|
taskId | string | 任务 ID |
percent | number | 进度百分比(0-100) |
speed | number | 传输速度(bytes/s) |
transferred | number | 已传输字节数 |
total | number | 总字节数 |
eta | number | 预计剩余时间(秒) |
currentFile | string | 当前处理文件 |
5.2 完成事件 backup:completed
| 字段 | 类型 | 说明 |
|---|
taskId | string | 任务 ID |
duration | number | 耗时(秒) |
totalFiles | number | 总文件数 |
totalSize | number | 总大小(字节) |
5.3 错误事件 backup:error
| 字段 | 类型 | 说明 |
|---|
taskId | string | 任务 ID |
error | string | 错误描述 |
errorCode | string | 可选错误码 |
6. 任务列表字段表
| 字段 | 说明 |
|---|
id | 任务 ID |
name | 任务名称 |
source | 源路径 |
destination | 目标路径 |
status | 任务状态 |
progress.percent | 当前进度 |
progress.speed | 当前速度 |
progress.eta | 预计剩余时间 |
createdAt | 创建时间 |
lastRunAt | 最近执行时间 |
nextRunAt | 下次执行时间 |
7. 典型业务流程表
7.1 手动备份流程
| 步骤 | 用户/系统动作 | 对应接口 |
|---|
| 1 | 打开备份界面 | window:openBackup(可选) |
| 2 | 选择本地源目录 | dialog:selectFolder |
| 3 | 查看并确认设备目标目录 | zimaos:listFiles |
| 4 | 创建备份任务 | backup:create |
| 5 | 实时接收进度 | backup:progress |
| 6 | 接收完成或失败结果 | backup:completed / backup:error |
| 7 | 完成后发送通知 | notification:show(可选) |
7.2 定时备份流程
| 步骤 | 用户/系统动作 | 对应接口 |
|---|
| 1 | 选择源目录与目标目录 | backup:create 入参 |
| 2 | 配置增量、排除、定时 | config.incremental / config.exclude / config.schedule |
| 3 | 创建任务 | backup:create |
| 4 | 查看执行计划与历史 | backup:list |
| 5 | 根据需要暂停、恢复或删除 | backup:pause / backup:resume / backup:delete |
7.3 运行中控制流程
| 场景 | 操作 | 对应接口 |
|---|
| 临时停止任务 | 暂停 | backup:pause |
| 继续任务 | 恢复 | backup:resume |
| 中止当前任务 | 取消 | backup:cancel |
| 清理无用任务 | 删除 | backup:delete |
8. PRD 可直接引用的结论
| 结论项 | 结论 |
|---|
| 默认备份模式 | 默认增量备份 |
| 是否支持全量 | 支持,通过 incremental: false 实现 |
| 排除规则能力 | 支持多条 glob 规则,可排除文件和目录 |
| 定时能力 | 支持,通过 cron 表达式配置 |
| 进度可视化 | 支持,包含进度、速度、剩余时间、当前文件 |
| 结果反馈 | 支持完成统计与错误反馈 |
| 生命周期管理 | 支持查看、暂停、恢复、取消、删除 |
| 当前待确认项 | 全量语义、取消后的状态值、glob 语法边界、UI 配置方式 |
本文作者:oyph
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA
许可协议。转载请注明出处!