411 lines
9.3 KiB
Markdown
411 lines
9.3 KiB
Markdown
# DiskNext Server 开发路线图
|
||
|
||
本文档概述 DiskNext Server 的开发计划和进度。项目当前处于 **OMEGA** 实验阶段。
|
||
|
||
---
|
||
|
||
## 版本规划
|
||
|
||
| 阶段 | 版本 | 状态 | 说明 |
|
||
|------|------|------|------|
|
||
| OMEGA | 0.0.x | **当前** | 实验性开发,API 可能频繁变动 |
|
||
| Alpha | 0.1.x | 计划中 | 核心功能基本可用 |
|
||
| Beta | 0.5.x | 计划中 | 功能完善,开始公测 |
|
||
| RC | 0.9.x | 计划中 | 候选发布版本 |
|
||
| Stable | 1.0.0 | 计划中 | 正式稳定版本 |
|
||
|
||
---
|
||
|
||
## OMEGA 阶段 (v0.0.x) - 当前
|
||
|
||
### 已完成
|
||
|
||
#### 基础架构
|
||
- [x] FastAPI 应用框架搭建
|
||
- [x] SQLModel ORM 集成
|
||
- [x] 异步数据库支持 (aiosqlite)
|
||
- [x] 项目结构规范化
|
||
- [x] 开发规范文档 (CLAUDE.md)
|
||
|
||
#### 数据模型
|
||
- [x] 基类定义 (SQLModelBase, TableBase, UUIDTableBase)
|
||
- [x] 用户模型 (User)
|
||
- [x] 用户组模型 (Group, GroupOptions)
|
||
- [x] 统一对象模型 (Object) - 合并文件和目录
|
||
- [x] 存储策略模型 (Policy)
|
||
- [x] 分享模型 (Share)
|
||
- [x] 标签模型 (Tag)
|
||
- [x] WebDAV 模型 (WebDAV)
|
||
- [x] 设置模型 (Setting)
|
||
- [x] 其他模型 (Order, Redeem, Report, Task, SourceLink, StoragePack, Download, Node)
|
||
|
||
#### 用户系统
|
||
- [x] 用户注册接口
|
||
- [x] 用户登录接口 (OAuth2.1 Password Grant)
|
||
- [x] JWT 令牌认证
|
||
- [x] 获取当前用户信息
|
||
- [x] 用户存储空间查询
|
||
|
||
#### 认证安全
|
||
- [x] Argon2 密码哈希
|
||
- [x] JWT 令牌生成与验证
|
||
- [x] 认证中间件
|
||
- [x] 两步验证 (2FA/TOTP) 初始化与启用
|
||
- [x] WebAuthn 注册初始化
|
||
|
||
#### 测试
|
||
- [x] pytest 测试框架配置
|
||
- [x] 单元测试结构
|
||
- [x] 集成测试结构
|
||
- [x] 测试夹具 (fixtures)
|
||
|
||
### 进行中
|
||
|
||
#### 用户系统
|
||
- [ ] WebAuthn 完整流程
|
||
- [ ] OAuth 第三方登录 (QQ, GitHub)
|
||
- [ ] 用户设置管理
|
||
- [ ] 头像上传/Gravatar
|
||
|
||
#### 目录系统
|
||
- [ ] 目录浏览接口
|
||
- [ ] 目录创建接口
|
||
- [ ] 路径解析优化
|
||
|
||
#### 存储策略
|
||
- [ ] 本地存储策略实现
|
||
- [ ] S3 存储策略实现
|
||
|
||
---
|
||
|
||
## Alpha 阶段 (v0.1.x) - 计划中
|
||
|
||
### 文件操作
|
||
|
||
- [ ] 文件上传(单文件)
|
||
- [ ] 文件上传(分块上传)
|
||
- [ ] 文件下载
|
||
- [ ] 文件预览 URL 生成
|
||
- [ ] 缩略图生成
|
||
- [ ] 文件移动/复制
|
||
- [ ] 文件重命名
|
||
- [ ] 文件删除(软删除/回收站)
|
||
|
||
### 目录操作
|
||
|
||
- [ ] 目录树查询
|
||
- [ ] 目录移动/复制
|
||
- [ ] 目录删除(递归)
|
||
- [ ] 批量操作
|
||
|
||
### 存储策略完善
|
||
|
||
- [ ] 阿里云 OSS 支持
|
||
- [ ] 腾讯云 COS 支持
|
||
- [ ] 七牛云支持
|
||
- [ ] OneDrive 支持
|
||
- [ ] 存储策略切换
|
||
|
||
### 用户组权限
|
||
|
||
- [ ] 权限验证中间件
|
||
- [ ] 存储空间限制
|
||
- [ ] 文件类型限制
|
||
- [ ] 单文件大小限制
|
||
|
||
### Webhook 事件系统
|
||
|
||
- [ ] 文件事件推送(创建、修改、删除、分享)
|
||
- [ ] 自定义 HTTP 回调配置
|
||
- [ ] 事件过滤规则
|
||
- [ ] 重试机制与日志
|
||
|
||
---
|
||
|
||
## Beta 阶段 (v0.5.x) - 计划中
|
||
|
||
### 分享功能
|
||
|
||
- [ ] 创建分享链接
|
||
- [ ] 分享链接中带有 README 自动预览
|
||
- [ ] 分享密码保护
|
||
- [ ] 分享过期时间
|
||
- [ ] 分享访问统计
|
||
- [ ] 分享页面数据接口
|
||
|
||
### 离线下载
|
||
|
||
- [ ] Aria2 RPC 集成
|
||
- [ ] qBittorrent API 集成
|
||
- [ ] 下载任务管理
|
||
- [ ] 下载完成回调
|
||
|
||
### WebDAV
|
||
|
||
- [ ] WebDAV 账号管理
|
||
- [ ] WebDAV 协议实现
|
||
- [ ] WebDAV 代理功能
|
||
|
||
### 增值服务
|
||
|
||
- [ ] 积分系统实现
|
||
- [ ] 兑换码生成与使用
|
||
- [ ] 存储容量包
|
||
- [ ] 订单管理
|
||
|
||
### 管理后台
|
||
|
||
- [ ] 用户管理接口
|
||
- [ ] 用户组管理接口
|
||
- [ ] 存储策略管理接口
|
||
- [ ] 系统设置接口
|
||
- [ ] 任务管理接口
|
||
- [ ] 文件管理接口
|
||
- [ ] 数据统计接口
|
||
|
||
### 协作功能
|
||
|
||
- [ ] 文件/文件夹协作权限(查看者/评论者/编辑者/管理者)
|
||
- [ ] 协作邀请与权限管理接口
|
||
- [ ] 活动流(文件变更历史)
|
||
- [ ] 文件评论与 @提及
|
||
- [ ] 文件夹变更订阅通知
|
||
|
||
### 外部存储源挂载(借鉴 Alist)
|
||
|
||
- [ ] 远程 URL 挂载(HTTP/FTP 链接作为虚拟文件)
|
||
- [ ] SFTP/SMB 远程目录挂载
|
||
- [ ] 挂载源只读/可写模式
|
||
- [ ] 多存储策略聚合视图
|
||
|
||
---
|
||
|
||
## RC 阶段 (v0.9.x) - 计划中
|
||
|
||
### 分布式支持
|
||
|
||
- [ ] 从节点注册与认证
|
||
- [ ] 从节点任务分发
|
||
- [ ] 从节点健康检查
|
||
- [ ] 负载均衡
|
||
|
||
### 性能优化
|
||
|
||
- [ ] 数据库查询优化
|
||
- [ ] 缓存层 (Redis)
|
||
- [ ] CDN 集成
|
||
- [ ] 并发上传优化
|
||
|
||
### 安全加固
|
||
|
||
- [ ] 速率限制
|
||
- [ ] 安全审计日志
|
||
- [ ] 敏感操作二次验证
|
||
- [ ] CORS 配置优化
|
||
|
||
### 在线预览
|
||
|
||
- [ ] 图片预览
|
||
- [ ] 视频播放
|
||
- [ ] 音频播放
|
||
- [ ] PDF 预览
|
||
- [ ] Office 文档预览
|
||
- [ ] Markdown 渲染
|
||
- [ ] 代码高亮
|
||
|
||
### 客户端同步 API
|
||
|
||
- [ ] 增量同步协议(仅传输变更)
|
||
- [ ] 文件冲突检测与处理
|
||
- [ ] 按需下载占位符(类似 OneDrive)
|
||
- [ ] 带宽控制(限速上传/下载)
|
||
- [ ] 移动端相册自动备份 API
|
||
- [ ] 后台上传支持(iOS/Android)
|
||
- [ ] 离线标记与推送通知
|
||
|
||
### 云盘数据迁移
|
||
|
||
- [ ] Google Drive OAuth 导入
|
||
- [ ] Dropbox OAuth 导入
|
||
- [ ] OneDrive OAuth 导入
|
||
- [ ] 百度网盘导入(Cookie/API)
|
||
- [ ] WebDAV 源批量拉取
|
||
- [ ] 迁移进度追踪与断点续传
|
||
|
||
### 存储分析仪表盘
|
||
|
||
- [ ] 空间使用分析(按文件类型、用户、时间)
|
||
- [ ] 重复文件检测报告
|
||
- [ ] 大文件排行榜
|
||
- [ ] 访问热度统计
|
||
- [ ] 存储增长趋势预测
|
||
|
||
---
|
||
|
||
## Stable 阶段 (v1.0.0) - 计划中
|
||
|
||
### 功能完善
|
||
|
||
- [ ] 全盘搜索
|
||
- [ ] 文件标签
|
||
- [ ] 收藏夹
|
||
- [ ] 最近访问
|
||
- [ ] 回收站
|
||
|
||
### 文件处理工作流
|
||
|
||
- [ ] 工作流引擎(触发条件 + 匹配规则 + 执行动作)
|
||
- [ ] 内置动作:格式转换、移动、压缩、通知
|
||
- [ ] 定时任务触发器
|
||
- [ ] 工作流模板市场
|
||
|
||
### 冷热数据分层
|
||
|
||
- [ ] 存储层级定义(HOT/WARM/COLD)
|
||
- [ ] 基于访问频率的自动降级策略
|
||
- [ ] 访问时自动升温
|
||
- [ ] 分层存储成本报告
|
||
|
||
### 国际化
|
||
|
||
- [ ] i18n 框架集成
|
||
- [ ] 多语言错误消息
|
||
- [ ] API 文档多语言
|
||
|
||
### 文档完善
|
||
|
||
- [ ] API 文档完善
|
||
- [ ] 部署文档
|
||
- [ ] 开发者文档
|
||
- [ ] 用户手册
|
||
|
||
### 生产就绪
|
||
|
||
- [ ] Docker 镜像
|
||
- [ ] Docker Compose 配置
|
||
- [ ] Kubernetes 部署配置
|
||
- [ ] 监控指标 (Prometheus)
|
||
- [ ] 健康检查端点
|
||
|
||
---
|
||
|
||
## 未来展望 (v1.x+)
|
||
|
||
### 文件版本控制与增量存储
|
||
|
||
分阶段实现文件版本控制和智能存储优化。
|
||
|
||
#### 第一阶段:基础版本控制
|
||
|
||
- [ ] `FileVersion` 数据模型设计
|
||
- [ ] 文件修改时自动创建版本快照
|
||
- [ ] 版本历史查询接口
|
||
- [ ] 版本回滚功能
|
||
- [ ] 版本比较(文本文件)
|
||
|
||
#### 第二阶段:增量存储(Delta Storage)
|
||
|
||
- [ ] 文本文件 diff 存储(使用 `difflib`)
|
||
- [ ] 二进制文件 diff 存储(使用 `bsdiff4`)
|
||
- [ ] 文件类型智能判断(是否适合增量存储)
|
||
- [ ] 周期性完整快照策略(防止版本链过长)
|
||
- [ ] 版本重建服务(从快照 + delta 序列恢复)
|
||
|
||
#### 第三阶段:跨用户去重优化
|
||
|
||
- [ ] 相似性检测算法(MinHash / SimHash)
|
||
- [ ] 跨用户相似文件识别
|
||
- [ ] 共享基础版本 + 用户独立 delta 分支
|
||
- [ ] 存储空间节省统计
|
||
|
||
#### 技术说明
|
||
|
||
**存储效率预估**:
|
||
|
||
| 场景 | 传统方案 | 增量方案 | 节省 |
|
||
|------|----------|----------|------|
|
||
| 10 用户各持有 100MB 相似文档 | 1000MB | ~190MB | 81% |
|
||
| 单文件 50 个小版本 | 5GB | ~200MB | 96% |
|
||
|
||
**文件类型支持矩阵**:
|
||
|
||
| 文件类型 | Diff 效果 | 策略 |
|
||
|----------|-----------|------|
|
||
| 文本/代码/Markdown | 极佳 | 优先增量 |
|
||
| JSON/XML/配置文件 | 极佳 | 优先增量 |
|
||
| Office 文档 | 一般 | 按差异率决定 |
|
||
| 图片/视频/音频 | 差 | 完整存储 |
|
||
|
||
**风险与缓解**:
|
||
|
||
- 版本链损坏 → 周期性完整快照 + 校验和验证
|
||
- 读取性能 → 热点文件缓存 + 预计算
|
||
- 存储碎片 → Delta 文件打包 + 定期压实
|
||
|
||
### 媒体处理服务
|
||
|
||
- [ ] 视频转码(H.264/H.265,多分辨率输出)
|
||
- [ ] 图片处理(压缩、裁剪、格式转换、水印)
|
||
- [ ] 文档转换(Office → PDF,Markdown → HTML)
|
||
- [ ] 音频转码(MP3/AAC/FLAC 互转)
|
||
- [ ] 后台 Celery Worker + FFmpeg 架构
|
||
|
||
### AI 驱动功能
|
||
|
||
- [ ] 图片 OCR 文字提取与搜索
|
||
- [ ] 人脸识别照片分组
|
||
- [ ] 场景/物体自动标签
|
||
- [ ] 视频关键帧摘要
|
||
- [ ] 智能文件夹(自动分类)
|
||
|
||
### 安全与合规
|
||
|
||
- [ ] 文件病毒扫描(ClamAV 集成)
|
||
- [ ] 敏感信息检测(身份证、银行卡、手机号)
|
||
- [ ] 数据防泄漏策略(DLP)
|
||
- [ ] 分享链接动态水印
|
||
- [ ] 审计日志导出(合规报告)
|
||
|
||
### 其他高级功能
|
||
|
||
- [ ] 文件加密存储
|
||
- [ ] Subsonic 音乐接口
|
||
- [ ] 照片管理(相册、时间线、地图视图)
|
||
|
||
### 企业功能 (Pro)
|
||
|
||
- [ ] LDAP/AD 集成
|
||
- [ ] SSO 单点登录
|
||
- [ ] 审计日志
|
||
- [ ] 高级权限控制
|
||
- [ ] 企业工作空间
|
||
- [ ] 协作功能
|
||
|
||
### 生态集成
|
||
|
||
- [ ] Rclone 集成
|
||
- [ ] 备份工具集成(增量备份到其他存储)
|
||
- [ ] Zapier/n8n/IFTTT 连接器
|
||
- [ ] 第三方应用 OAuth 授权
|
||
|
||
---
|
||
|
||
## 贡献指南
|
||
|
||
如果你想参与项目开发,可以:
|
||
|
||
1. 查看上方的待办事项,选择感兴趣的功能
|
||
2. 在 Issue 中认领任务
|
||
3. 阅读 [CLAUDE.md](CLAUDE.md) 了解开发规范
|
||
4. 提交 Pull Request
|
||
|
||
我们特别欢迎以下方面的贡献:
|
||
|
||
- 存储策略实现(各类云存储)
|
||
- 测试用例编写
|
||
- 文档完善
|
||
- Bug 修复
|
||
|
||
---
|
||
|
||
*最后更新:2025年12月* |