- Add file deduplication mechanism based on PhysicalFile reference counting. - Implement chunked upload support for large files with resumable uploads. - Update sharing page to automatically render README and preview content. - Integrate Redis for caching and token storage (optional). - Refactor project structure to include new models for download tasks, nodes, and tasks. - Introduce user filtering parameters for admin user management. - Add CORS middleware for handling cross-origin requests. - Improve error messages for authentication failures. - Update user model to include two-factor authentication key management. - Enhance API documentation and response models for clarity. - Implement admin checks for user management and permissions.
11 KiB
11 KiB
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) - 当前
已完成
基础架构
- FastAPI 应用框架搭建
- SQLModel ORM 集成
- 异步数据库支持 (aiosqlite, asyncpg)
- 项目结构规范化
- 开发规范文档 (AGENTS.md)
- Redis 集成(可选,支持降级)
- 生命周期管理(启动/关闭事件)
- 数据库自动迁移/初始化
数据模型
- 基类定义 (SQLModelBase, TableBaseMixin, UUIDTableBaseMixin)
- 自定义元类支持联表继承和多态
- 用户模型 (User)
- 用户 WebAuthn 凭证模型 (UserAuthn)
- 用户组模型 (Group, GroupOptions)
- 统一对象模型 (Object) - 合并文件和目录
- 物理文件模型 (PhysicalFile) - 文件去重
- 上传会话模型 (UploadSession)
- 文件元数据模型 (FileMetadata)
- 存储策略模型 (Policy, PolicyOptions)
- 分享模型 (Share)
- 标签模型 (Tag)
- WebDAV 模型 (WebDAV)
- 设置模型 (Setting)
- 其他模型 (Order, Redeem, Report, Task, SourceLink, StoragePack, Download, Node)
用户系统
- 用户注册接口
- 用户登录接口 (OAuth2.1 Password Grant)
- JWT 令牌认证
- 获取当前用户信息
- 用户存储空间查询
- 用户设置获取
目录系统
- 目录浏览接口(路径解析)
- 目录创建接口
文件系统
- 创建上传会话
- 分片上传接口
- 上传会话管理(删除、清除)
- 创建空白文件
- 下载令牌生成
- 文件下载(一次性令牌)
对象操作
- 对象删除(支持递归删除目录)
- 对象移动
- 对象复制(引用计数,不复制物理文件)
- 对象重命名
- 对象属性查询(基本属性、详细属性)
认证安全
- Argon2 密码哈希
- JWT 令牌生成与验证
- 认证中间件
- 管理员权限中间件
- 两步验证 (2FA/TOTP) 初始化与启用
- WebAuthn 注册初始化
- 下载令牌验证(一次性使用)
- 令牌存储(Redis/内存降级)
存储策略
- 本地存储策略实现
- 存储路径生成(支持命名规则)
- 文件写入/读取/删除
- 回收站机制
管理后台
- 管理员权限验证
- 站点概况统计(用户数、文件数、分享数趋势)
- 设置管理(获取、批量更新)
- Aria2 连接测试
测试
- pytest 测试框架配置
- 单元测试结构(models, service, utils)
- 集成测试结构(api, middleware)
- 测试夹具 (fixtures)
- 覆盖率报告配置
进行中
用户系统
- WebAuthn 完整流程
- OAuth 第三方登录 (QQ, GitHub)
- 用户设置管理
- 头像上传/Gravatar
存储策略
- S3 存储策略实现
Alpha 阶段 (v0.1.x) - 计划中
文件操作
- 文件预览 URL 生成
- 缩略图生成
- 文件内容获取(文本文件)
- Office 文档预览
- 文件外链功能
目录操作
- 目录树查询
- 批量操作优化
存储策略完善
- 阿里云 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 授权
贡献指南
如果你想参与项目开发,可以:
- 查看上方的待办事项,选择感兴趣的功能
- 在 Issue 中认领任务
- 阅读 CLAUDE.md 了解开发规范
- 提交 Pull Request
我们特别欢迎以下方面的贡献:
- 存储策略实现(各类云存储)
- 测试用例编写
- 文档完善
- Bug 修复
最后更新:2026年1月