Files
disknext/ROADMAP.md
于小丘 16cec42181 feat: Implement file download token management and restructure file routes
- Added DownloadTokenManager for creating and verifying JWT download tokens.
- Introduced new download routes for creating download tokens and downloading files using tokens.
- Restructured file upload routes into a dedicated sub-router.
- Updated file upload session management with improved error handling and response structures.
- Created a new MCP (Microservice Communication Protocol) router with basic request and response models.
- Added base models for MCP requests and responses, including method enumeration.
2025-12-23 18:12:11 +08:00

420 lines
9.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 → PDFMarkdown → 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月*