Files
disknext/ROADMAP.md
于小丘 b12aad4e73 feat: Enhance file management and user features
- 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.
2026-01-13 15:29:52 +08:00

11 KiB
Raw Permalink Blame History

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 → 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 了解开发规范
  4. 提交 Pull Request

我们特别欢迎以下方面的贡献:

  • 存储策略实现(各类云存储)
  • 测试用例编写
  • 文档完善
  • Bug 修复

最后更新2026年1月