目录
NAS下载器应用软件需求规划
文档信息
一、需求背景
1.1 为什么要做
1.2 解决什么问题
1.3 对业务的价值
1.4 竞品状态
1.5 产品目标
二、用户旅程(用户使用场景 / 前端页面 / 不包含判断规则)
2.1 核心用户类型
2.2 用户旅程图
2.3 前端页面映射
三、场景拆解(包含判断规则 & 场景说明)
四、需求定义(场景到需求的转化)
五、卖点转化
六、排期需求
七、需求风险
八、远期规划
远期方向说明
九、自我检查
附:当前版本建议边界
V1 必须支持
建议新增的架构原则
V1 暂不纳入
NAS下载器应用软件需求规划
文档信息
| 项目 | 内容 |
|---|
| 文档版本 | v1.2 |
| 更新日期 | 2026-04-21 |
| 文档类型 | 软件需求规划 |
| 关联文档 | [[我的笔记/NAS需求文档/下载器/NAS下载器产品竞品分析]]、[[需求模板/软件需求规划]] |
| 适用对象 | 产品 / 设计 / 前端 / 服务端 / 客户端 / 测试 / 运维 |
| 目标版本 | 下载器应用 V1 |
一、需求背景
1.1 为什么要做
NAS 下载器是用户把资源获取行为长期留在 NAS 侧运行的高频入口,也是 NAS 从“存储设备”升级为“数据中枢”的关键应用。
对新兴 NAS 品牌而言,下载器的价值不只是“能下载”,而是要承担以下职责:
- 承接 BT / PT / 磁力链 / HTTPS / 品牌分享链接等主要资源来源
- 让用户通过 Web / App / 桌面端远程投递任务
- 与文件管理、通知中心、媒体中心、品牌分享体系形成闭环
- 提供比第三方下载器更原生、更简单、更系统化的体验
1.2 解决什么问题
| 用户痛点 | 具体表现 | 现状问题 |
|---|
| 资源获取方式分散 | BT/PT、磁力链、HTTPS、分享链接需要分别用不同工具处理 | 操作割裂,学习成本高 |
| 第三方下载器门槛高 | qBittorrent / Transmission 偏高级用户,不够原生 | 普通 NAS 用户上手困难 |
| 私有 PT 容易踩坑 | DHT/PEX/LSD、公共 Tracker 等配置不当可能影响站点考核 | 用户账号有风险 |
| 远程管理不方便 | 用户在手机上很难快速投递或管理任务 | 核心场景缺失 |
| 分享链路不闭环 | 同品牌分享链接常常需要先下载到本地再手动上传到 NAS | 链路长、效率低 |
| 下载完成后缺少系统联动 | 完成任务后不易进入文件管理或媒体库 | NAS 原生价值未体现 |
1.3 对业务的价值
| 价值维度 | 价值说明 |
|---|
| 核心应用建设 | 建立品牌自有下载能力,降低对第三方套件依赖 |
| 提升活跃度 | 用户更频繁使用 Web/App 管理 NAS 任务 |
| 生态闭环 | 打通下载、存储、管理、分享、媒体消费链路 |
| 品牌差异化 | 通过分享链接下载/转存、PT 友好模式、原生联动形成竞争力 |
| 后续扩展基础 | 为 RSS、自动整理、媒体刷新、开放 API、内部服务调用、CLI 自动化等能力打基础 |
1.4 竞品状态
| 竞品 | 当前特点 | 可借鉴点 | 不足/风险 |
|---|
| 飞牛现有下载模块 | 已有任务视图、限速、监听目录、连接、Tracker 设置骨架 | 信息架构清晰、适合做原生产品 | 深度能力和系统联动待补齐 |
| 绿联下载中心 | 原生下载中心 + App 远程管理 + 中文资源场景能力 | 远程管理、通知、做种限制、最大 Peer 等实用能力 | 能力线较多,产品容易割裂 |
| 群晖 Download Station | 一体化下载中心成熟,调度/API/后处理思路强 | 系统型下载基础设施思路 | BT/PT 深度不及 qB |
| qBittorrent | BT/PT 深度能力最强,自动化和细节控制完整 | 连接控制、做种规则、状态解释、PT 友好能力 | 普通用户门槛高,不够原生 |
| Transmission | 轻量、稳定、守护进程友好 | 轻量常驻、低资源占用 | 自动化和多场景集成较弱 |
1.5 产品目标
| 目标类型 | 内容 | 指标建议 |
|---|
| 核心目标 | 构建一款原生下载器,覆盖 BT / 私有 PT / 磁力链 / HTTPS / 同品牌分享链接 | V1 可独立上线 |
| 体验目标 | 普通用户默认可用,进阶用户可完成基础 BT/PT 管理 | 首次创建任务成功率 ≥ 95% |
| 稳定性目标 | 下载服务常驻稳定,重启后任务可恢复 | 崩溃/卡死率 ≤ 0.5% |
| 远程能力目标 | Web/App 可查看和添加主要任务 | 远程添加任务占比 ≥ 25% |
| 差异化目标 | 分享链接下载/转存与 PT 安全模式形成产品卖点 | 用户调研中成为高频功能 |
二、用户旅程(用户使用场景 / 前端页面 / 不包含判断规则)
2.1 核心用户类型
| 用户类型 | 特征 | 核心诉求 |
|---|
| 普通家庭用户 | 常下载影视、软件、压缩包 | 添加简单、稳定可下、手机可管 |
| BT/PT 进阶用户 | 关注 Tracker、做种、分享率、连接参数 | PT 不踩坑、做种可控、错误可排查 |
| 品牌生态用户 | 频繁使用品牌分享链接收发文件 | 一键转存/下载到 NAS |
2.2 用户旅程图
flowchart TD
A[进入下载器首页] --> B[点击添加任务]
B --> C{选择资源来源}
C --> C1[上传 .torrent]
C --> C2[粘贴 magnet 链接]
C --> C3[粘贴 HTTPS 链接]
C --> C4[粘贴品牌分享链接]
C1 --> D[识别资源并展示任务信息]
C2 --> D
C3 --> D
C4 --> D
D --> E[选择保存目录与任务参数]
E --> F[创建任务]
F --> G[任务列表展示进度]
G --> H[查看详情/暂停/恢复/删除]
G --> H1[NAS其他应用发起下载调用]
H1 --> H2[下载器服务接收任务并回传状态]
H --> I[下载完成]
I --> J[通知用户]
J --> K[打开目录或进入后续应用]
2.3 前端页面映射
| 旅程阶段 | 用户动作 | 主要页面/入口 | 用户感知 |
|---|
| 进入下载器 | 打开应用 | 下载器首页/任务列表页 | 可快速看到全部任务状态 |
| 添加任务 | 点击新建任务 | 添加任务弹窗 | 入口统一、类型自动识别 |
| 配置任务 | 选择目录、文件、模式 | 创建确认页/弹窗 | 配置简单、关键参数清晰 |
| 执行下载 | 查看任务状态 | 任务列表页 | 进度、速度、错误一目了然 |
| 深入管理 | 查看详情/做种信息 | 任务详情页 | 能定位问题并调整操作 |
| 结果消费 | 打开目录/接收通知 | 通知中心/文件管理/媒体中心 | 下载完成后可直接使用内容 |
| 系统集成 | 其他 NAS 应用发起调用 / SSH 脚本执行命令 | 内部服务接口 / CLI | 下载能力可作为系统基础设施被复用 |
三、场景拆解(包含判断规则 & 场景说明)
| 流程 | 节点 | 使用场景 | 系统行为 | 判断规则 |
|---|
| 流程1:创建任务 | 节点1-1 | 用户点击“添加任务” | 打开统一任务创建入口 | 默认提供链接输入、torrent 上传、分享链接导入 |
| 流程1:创建任务 | 节点1-2 | 用户输入资源内容 | 自动识别资源类型 | magnet: 识别为磁力;品牌域名 HTTPS 识别为分享链接;其他 HTTPS 识别为直链;上传 .torrent 识别为 BT/PT |
| 流程1:创建任务 | 节点1-3 | 用户上传 torrent | 解析 torrent 元数据 | 若 torrent 含 private 标记,则标记为 PT 任务 |
| 流程1:创建任务 | 节点1-4 | 用户确认创建任务 | 展示保存目录/文件选择/下载模式 | 目录必须可写;重名任务需提示;无权限则禁止创建 |
| 流程2:BT/PT 下载 | 节点2-1 | 用户创建公开 BT 任务 | 启动元数据获取、Peer 连接、下载 | 公开种可使用 DHT/PEX/LSD 与公共 Tracker 配置 |
| 流程2:BT/PT 下载 | 节点2-2 | 用户创建私有 PT 任务 | 自动启用 PT 安全模式 | 自动关闭 DHT/PEX/LSD;禁止追加公共 Tracker;保留原 Tracker |
| 流程2:BT/PT 下载 | 节点2-3 | 任务进入做种 | 统计上传量、分享率、做种时长 | 根据用户设定的分享率/时长规则停止或持续做种 |
| 流程3:磁力下载 | 节点3-1 | 用户粘贴 magnet 链接 | 解析磁力参数并拉取元数据 | 元数据获取超时需提示;成功后允许文件选择 |
| 流程4:HTTPS 下载 | 节点4-1 | 用户粘贴 HTTPS 链接 | 发起 HEAD/GET、识别文件名与大小 | 支持重定向;若不支持断点续传需提示 |
| 流程4:HTTPS 下载 | 节点4-2 | 目标目录有同名文件 | 弹出冲突处理策略 | 支持跳过 / 覆盖 / 自动重命名 |
| 流程5:分享链接处理 | 节点5-1 | 用户输入品牌分享链接 | 识别链接并拉取分享元数据 | 如需提取码则先校验;过期/失效需明确提示 |
| 流程5:分享链接处理 | 节点5-2 | 用户选择保存方式 | 支持转存或下载 | 优先转存;若无转存条件则走下载模式 |
| 流程6:任务管理 | 节点6-1 | 用户在列表中管理任务 | 支持暂停/恢复/删除/重试 | 删除时需区分“删任务”与“删任务+删文件” |
| 流程6:任务管理 | 节点6-2 | 用户查看任务异常 | 展示错误信息和最近日志 | 失败原因需结构化:资源失效/权限不足/网络超时/磁盘不足等 |
| 流程7:远程管理 | 节点7-1 | 用户在 App 远程添加任务 | 通过统一接口创建任务 | V1 支持链接类任务;P1 支持 App 上传 torrent |
| 流程8:任务完成 | 节点8-1 | 下载完成 | 发送通知并提供后续操作 | 支持打开目录;P1 可触发媒体库扫描 |
| 流程9:NAS 内部服务调用 | 节点9-1 | 媒体中心、文件管理等应用希望发起下载 | 通过内部服务接口提交任务 | 需有统一任务模型、鉴权、幂等控制、来源标识 |
| 流程9:NAS 内部服务调用 | 节点9-2 | 调用方需要感知任务进度和结果 | 返回任务 ID,并支持查询 / 订阅回调 | 至少支持轮询查询;P1 支持事件通知/Webhook |
| 流程10:CLI 管理 | 节点10-1 | 用户通过 SSH/脚本管理下载服务 | 提供统一命令行入口 | 支持 add/list/get/pause/resume/remove/config/logs/health 等命令 |
| 流程10:CLI 管理 | 节点10-2 | 脚本或自动化任务调用 CLI | 输出标准化结果 | 支持 exit code、纯文本/JSON 输出、非交互模式 |
四、需求定义(场景到需求的转化)
| 流程 | 节点 | 需求描述 | 需求补充说明 | 需求类型 | 优先级 | 实现方式(可选) |
|---|
| 流程1 | 节点1-1 | 提供统一“添加任务”入口 | 支持链接粘贴、torrent 上传、分享链接导入 | 功能 | P0 | 自研 |
| 流程1 | 节点1-2 | 自动识别资源类型 | 根据协议、域名、文件后缀判定 | 规则 | P0 | 自研 |
| 流程1 | 节点1-3 | 解析 torrent 元数据 | 支持文件列表、大小、private 标记识别 | 功能 | P0 | 引擎+自研适配 |
| 流程1 | 节点1-4 | 创建任务前校验保存目录和重复任务 | 避免无权限、重名、无效路径 | 规则 | P0 | 自研 |
| 流程2 | 节点2-1 | 支持公开 BT 种子下载 | 含多文件、续传、做种、校验 | 功能 | P0 | 下载引擎 |
| 流程2 | 节点2-2 | 支持私有 PT 种子下载 | 默认启用 PT 安全模式 | 功能 | P0 | 下载引擎+策略层 |
| 流程2 | 节点2-3 | 提供做种规则 | 支持按分享率、时长、无限做种 | 功能 | P0 | 自研 |
| 流程2 | 节点2-3 | 展示 PT 核心指标 | 分享率、上传量、做种时长、Tracker 状态 | 功能 | P0 | 自研 |
| 流程3 | 节点3-1 | 支持磁力链下载 | 支持元数据获取、失败提示、超时重试 | 功能 | P0 | 下载引擎 |
| 流程4 | 节点4-1 | 支持 HTTPS 文件下载 | 支持重定向、断点续传、大小识别 | 功能 | P0 | 自研/第三方库 |
| 流程4 | 节点4-2 | 支持同名文件冲突策略 | 跳过 / 覆盖 / 自动重命名 | 规则 | P0 | 自研 |
| 流程5 | 节点5-1 | 支持品牌分享链接识别和校验 | 识别域名、提取码、权限、过期状态 | 功能 | P0 | 依赖分享系统接口 |
| 流程5 | 节点5-2 | 支持分享链接转存/下载双模式 | 优先转存,失败时可提示降级 | 功能 | P0 | 依赖内部接口 |
| 流程6 | 节点6-1 | 提供任务列表与批量管理 | 状态筛选、搜索、暂停、恢复、删除 | 功能 | P0 | 自研 |
| 流程6 | 节点6-2 | 提供任务详情页 | 展示文件、Tracker、速度、错误、日志 | 功能 | P0 | 自研 |
| 流程6 | 节点6-2 | 错误原因结构化展示 | 失败需可解释 | 异常 | P0 | 自研 |
| 流程7 | 节点7-1 | 支持 Web 端远程管理任务 | 列表查看、操作管理、创建任务 | 功能 | P0 | 自研 |
| 流程7 | 节点7-1 | 支持 App 端远程管理链接类任务 | V1 支持链接;P1 支持 torrent 上传 | 功能 | P0/P1 | 自研 |
| 流程8 | 节点8-1 | 提供下载完成/失败通知 | 系统通知中心 + App 推送 | 功能 | P0 | 复用系统通知 |
| 流程8 | 节点8-1 | 支持打开目录 | 与文件管理联动 | 功能 | P0 | 复用系统能力 |
| 流程9 | 节点9-1 | 提供 NAS 内部统一调用接口 | 供媒体中心、文件管理、自动化服务发起下载/转存任务 | 功能 | P1 | 自研服务层 |
| 流程9 | 节点9-1 | 统一任务模型与来源标识 | 区分 Web/App/媒体中心/CLI/第三方来源 | 规则 | P1 | 自研 |
| 流程9 | 节点9-2 | 提供任务查询与结果回传能力 | 返回任务 ID,支持查询状态、获取结果、失败原因 | 功能 | P1 | 自研接口层 |
| 流程9 | 节点9-2 | 支持回调 / Webhook / 事件通知机制 | 便于媒体中心等服务自动刷新流程 | 功能 | P1/P2 | 自研/事件总线 |
| 流程10 | 节点10-1 | 提供下载服务 CLI | 支持任务创建、查询、控制、配置、诊断 | 功能 | P1 | 自研 CLI |
| 流程10 | 节点10-1 | CLI 支持 JSON 输出与标准退出码 | 便于脚本、cron、运维系统调用 | 规则 | P1 | 自研 CLI |
| 流程10 | 节点10-1 | CLI 支持非交互式认证与目标实例指定 | 适用于 SSH、脚本和多设备管理 | 功能 | P1 | 自研 CLI |
| 流程10 | 节点10-2 | 下载核心服务与 UI 解耦 | Web/App/桌面端/CLI 复用同一服务能力 | 架构 | P1 | 服务化改造 |
| 扩展 | - | 监听目录自动建任务 | 监听指定目录中的 torrent 文件 | 功能 | P1 | 自研 |
| 扩展 | - | UPnP / NAT-PMP | 降低端口配置门槛 | 功能 | P1 | 网络能力接入 |
| 扩展 | - | 下载完成后自动整理与媒体刷新 | 进入媒体消费链路 | 功能 | P1 | 依赖媒体系统 |
| 扩展 | - | RSS 自动订阅下载 | 面向进阶用户 | 功能 | P2 | 后续规划 |
| 扩展 | - | API / Webhook | 面向自动化与生态接入 | 功能 | P2 | 后续规划 |
五、卖点转化
| 卖点 | 对应需求/功能点 |
|---|
| 原生简单易用 | 统一添加任务入口、资源自动识别、默认可用配置、任务状态视图 |
| 私有 PT 友好 | private 标记识别、PT 安全模式、分享率/做种时长展示、风险配置提醒 |
| 品牌生态闭环 | 分享链接识别、提取码校验、转存/下载双模式、下载完成后打开目录 |
| 远程管理方便 | Web/App 远程创建任务、查看任务状态、暂停/恢复/删除 |
| 系统能力可复用 | 为媒体中心、文件管理、自动化服务提供统一调用接口和状态回传 |
| 自动化友好 | 提供 CLI、JSON 输出、标准退出码,方便脚本与运维体系接入 |
| 下载结果可消费 | 下载完成通知、打开目录、P1 媒体库刷新 |
| 稳定常驻运行 | 下载服务常驻、断点续传、重启恢复、结构化错误提示 |
六、排期需求
| 功能模块/页面 | 包含内容 | 目标版本 |
|---|
| 首页/任务列表 | 状态筛选、搜索、批量暂停/恢复/删除、总速率展示 | V1 |
| 添加任务弹窗 | 链接识别、torrent 上传、分享链接导入、保存目录选择 | V1 |
| BT/PT 下载能力 | torrent 解析、磁力元数据、做种、PT 安全模式、分享率统计 | V1 |
| HTTPS 下载能力 | 重定向、断点续传、同名冲突处理、失败重试 | V1 |
| 分享链接下载能力 | 链接识别、提取码、权限判断、转存/下载双模式 | V1 |
| 任务详情页 | 文件列表、Tracker、错误原因、日志、详情信息 | V1 |
| 系统设置 | 并发数、限速、分时段限速、监听端口、TCP/uTP | V1 |
| 通知与联动 | 完成/失败通知、打开目录 | V1 |
| Web/App 远程管理 | 远程添加链接任务、查看任务、操作任务 | V1 |
| 服务化接口层 | 内部统一调用接口、任务来源标识、基础状态查询 | V1.5 |
| CLI 工具链 | add/list/get/pause/resume/remove/config/logs/health、JSON 输出 | V1.5 |
| 监听目录 | 自动监听 torrent 文件创建任务 | V1.5 |
| 高级网络配置 | 最大 Peer、最大连接数、UPnP/NAT-PMP | V1.5 |
| 结果后处理 | 完成后自动整理、媒体中心刷新 | V1.5 |
| App 上传 torrent | 手机上传种子文件 | V1.5 |
| RSS / API / Webhook | 自动化和生态能力 | V2 |
七、需求风险
| 功能模块/功能点 | 风险描述 | 解决方案 |
|---|
| 私有 PT 支持 | 错误默认配置可能影响用户站点考核 | 默认 PT 安全模式;高风险操作二次确认;公有/私有配置隔离 |
| 分享链接下载/转存 | 依赖分享系统接口与权限模型,复杂度高 | V1 先支持公开分享+提取码+登录态三类;统一错误码和回传结构 |
| 下载引擎稳定性 | 大量任务可能拖垮低配机型 | 机型分级限制并发、默认限速、异常自动恢复 |
| HTTPS 下载兼容性 | 不同站点对重定向、断点续传支持差异大 | 增加能力探测和明确提示;不支持续传时给出说明 |
| App 远程管理 | 多端接口和状态同步复杂 | 统一任务模型和接口层;先支持核心链路 |
| 内部服务调用 | 媒体中心等服务接入后,接口变更会产生联动影响 | 设计稳定服务契约;保证向后兼容;建立来源隔离与限流机制 |
| CLI 化 | CLI 与 UI 能力不一致会增加维护成本 | 以统一服务接口为底座,CLI 仅做薄封装;命令规范提前冻结 |
| 用户预期管理 | 用户可能拿原生下载器直接对标 qB | 明确定位“原生下载中枢”;高级能力分阶段补齐 |
| 下载完成后联动 | 与文件管理/媒体中心耦合增加联调成本 | V1 仅做打开目录;媒体刷新放到 V1.5 |
八、远期规划
flowchart LR
A[V1:核心下载能力] --> B[V1.5:增强体验]
B --> C[V2:自动化与开放生态]
A --> A1[BT/PT/磁力/HTTPS/分享链接]
A --> A2[任务管理/通知/Web-App远程]
B --> B1[监听目录]
B --> B2[高级网络配置]
B --> B3[自动整理/媒体刷新]
B --> B4[内部服务接口/CLI]
C --> C1[RSS 自动订阅]
C --> C2[API / Webhook]
C --> C3[规则引擎]
C --> C4[外部下载器兼容管理]
远期方向说明
- V1:先把最核心的 5 类下载来源和任务管理做稳定。
- V1.5:补齐易用性、系统联动、内部服务接口与 CLI 能力,提升体验完成度。
- V2:建设自动化与生态开放能力,形成平台型下载基础设施。
九、自我检查
附:当前版本建议边界
V1 必须支持
- BT 种子下载
- 私有 PT 种子下载
- 磁力链下载
- HTTPS 下载
- 同品牌分享链接下载/转存
- 任务列表与详情
- 限速、并发、端口等基础设置
- 完成/失败通知
- Web/App 远程管理核心链路
建议新增的架构原则
- 下载核心能力以常驻后台服务形式提供,UI 不是唯一入口
- Web / App / 桌面端 / CLI / NAS 内部应用复用统一服务层
- 内部接口需具备来源标识、幂等控制、基础鉴权、标准错误码
- CLI 需优先覆盖任务管理、服务诊断、脚本自动化三类场景
V1 暂不纳入
- RSS 自动订阅
- 站点搜索
- 代理/匿名/IP 过滤等高阶能力
- 外部下载器统一管理
- 多租户复杂权限体系
本文作者:oyph
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA
许可协议。转载请注明出处!