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.
This commit is contained in:
2026-01-13 15:29:52 +08:00
parent 61ddc96f17
commit b12aad4e73
13 changed files with 467 additions and 4512 deletions

View File

@@ -24,17 +24,25 @@
- [x] FastAPI 应用框架搭建
- [x] SQLModel ORM 集成
- [x] 异步数据库支持 (aiosqlite)
- [x] 异步数据库支持 (aiosqlite, asyncpg)
- [x] 项目结构规范化
- [x] 开发规范文档 (CLAUDE.md)
- [x] 开发规范文档 (AGENTS.md)
- [x] Redis 集成(可选,支持降级)
- [x] 生命周期管理(启动/关闭事件)
- [x] 数据库自动迁移/初始化
#### 数据模型
- [x] 基类定义 (SQLModelBase, TableBase, UUIDTableBase)
- [x] 基类定义 (SQLModelBase, TableBaseMixin, UUIDTableBaseMixin)
- [x] 自定义元类支持联表继承和多态
- [x] 用户模型 (User)
- [x] 用户 WebAuthn 凭证模型 (UserAuthn)
- [x] 用户组模型 (Group, GroupOptions)
- [x] 统一对象模型 (Object) - 合并文件和目录
- [x] 存储策略模型 (Policy)
- [x] 物理文件模型 (PhysicalFile) - 文件去重
- [x] 上传会话模型 (UploadSession)
- [x] 文件元数据模型 (FileMetadata)
- [x] 存储策略模型 (Policy, PolicyOptions)
- [x] 分享模型 (Share)
- [x] 标签模型 (Tag)
- [x] WebDAV 模型 (WebDAV)
@@ -48,21 +56,62 @@
- [x] JWT 令牌认证
- [x] 获取当前用户信息
- [x] 用户存储空间查询
- [x] 用户设置获取
#### 目录系统
- [x] 目录浏览接口(路径解析)
- [x] 目录创建接口
#### 文件系统
- [x] 创建上传会话
- [x] 分片上传接口
- [x] 上传会话管理(删除、清除)
- [x] 创建空白文件
- [x] 下载令牌生成
- [x] 文件下载(一次性令牌)
#### 对象操作
- [x] 对象删除(支持递归删除目录)
- [x] 对象移动
- [x] 对象复制(引用计数,不复制物理文件)
- [x] 对象重命名
- [x] 对象属性查询(基本属性、详细属性)
#### 认证安全
- [x] Argon2 密码哈希
- [x] JWT 令牌生成与验证
- [x] 认证中间件
- [x] 管理员权限中间件
- [x] 两步验证 (2FA/TOTP) 初始化与启用
- [x] WebAuthn 注册初始化
- [x] 下载令牌验证(一次性使用)
- [x] 令牌存储Redis/内存降级)
#### 存储策略
- [x] 本地存储策略实现
- [x] 存储路径生成(支持命名规则)
- [x] 文件写入/读取/删除
- [x] 回收站机制
#### 管理后台
- [x] 管理员权限验证
- [x] 站点概况统计(用户数、文件数、分享数趋势)
- [x] 设置管理(获取、批量更新)
- [x] Aria2 连接测试
#### 测试
- [x] pytest 测试框架配置
- [x] 单元测试结构
- [x] 集成测试结构
- [x] 单元测试结构models, service, utils
- [x] 集成测试结构api, middleware
- [x] 测试夹具 (fixtures)
- [x] 覆盖率报告配置
### 进行中
@@ -73,15 +122,8 @@
- [ ] 用户设置管理
- [ ] 头像上传/Gravatar
#### 目录系统
- [ ] 目录浏览接口
- [ ] 目录创建接口
- [ ] 路径解析优化
#### 存储策略
- [ ] 本地存储策略实现
- [ ] S3 存储策略实现
---
@@ -90,21 +132,16 @@
### 文件操作
- [ ] 文件上传(单文件)
- [ ] 文件上传(分块上传)
- [ ] 文件下载
- [ ] 文件预览 URL 生成
- [ ] 缩略图生成
- [ ] 文件移动/复制
- [ ] 文件重命名
- [ ] 文件删除(软删除/回收站)
- [ ] 文件内容获取(文本文件)
- [ ] Office 文档预览
- [ ] 文件外链功能
### 目录操作
- [ ] 目录树查询
- [ ] 目录移动/复制
- [ ] 目录删除(递归)
- [ ] 批量操作
- [ ] 批量操作优化
### 存储策略完善
@@ -117,10 +154,17 @@
### 用户组权限
- [ ] 权限验证中间件
- [ ] 存储空间限制
- [ ] 存储空间限制检查
- [ ] 文件类型限制
- [ ] 单文件大小限制
### 管理后台完善
- [ ] 用户管理接口
- [ ] 用户组管理接口
- [ ] 存储策略管理接口
- [ ] 文件管理接口(封禁/解封)
### Webhook 事件系统
- [ ] 文件事件推送(创建、修改、删除、分享)
@@ -161,15 +205,12 @@
- [ ] 存储容量包
- [ ] 订单管理
### 管理后台
### 文件处理
- [ ] 用户管理接口
- [ ] 用户组管理接口
- [ ] 存储策略管理接口
- [ ] 系统设置接口
- [ ] 任务管理接口
- [ ] 文件管理接口
- [ ] 数据统计接口
- [ ] 文件压缩任务
- [ ] 文件解压任务
- [ ] 文件转移任务
- [ ] 文件搜索功能
### 协作功能
@@ -416,4 +457,4 @@
---
*最后更新2025年12*
*最后更新2026年1月*