lou
|
4b25231c01
|
新增孤儿清理工具 + 看门狗每小时自动清理 + start.sh 无条件补拉看门狗
- clean_orphans.py: 只删数据库无记录的孤儿 (tmp 终态/僵尸任务卷, storage 无记录目录)
- 目录级判断: files 记录指向的目录整体跳过, 内部文件永不单独删除 (防误删)
- 路径 resolve 统一, 调用方 cwd 无关
- 边界: tmp 终态超 1h 删/进行中保留/超 7 天判僵尸; storage 孤儿超 24h 删
- watchdog.sh: 每 30s 保活服务 + 每小时自动跑清理 (失败 30s 后重试)
- start.sh: 看门狗拉起移到无条件位置 (原 main.py 在跑时 exit 短路, 看门狗死亡无人接管)
- tests: 新增 test_clean_orphans 5 项 (含有效目录内 chunk 不删的误删回归断言)
- README: 数据目录补 tmp, 新增运维节, 测试数 13->17
|
2026-08-11 14:22:28 +08:00 |
|
lou
|
cff202c82f
|
README 更新: deb 安装(依赖自动装) + API 一览 + 数据目录
|
2026-08-10 22:58:03 +08:00 |
|
lou
|
f24539ff5e
|
postinst: 系统依赖加 python3-venv + pip 清华镜像回退
|
2026-08-10 22:29:54 +08:00 |
|
lou
|
a827790db6
|
服务端 deb 化: debian/ 全套 (control/rules/postinst/changelog), 双包 all源码 + amd64编译(Nuitka onefile sz-server 22MB), postinst 自动装依赖 (aria2+p7zip+venv fastapi/uvicorn)
v1.3.0
|
2026-08-10 22:24:34 +08:00 |
|
lou
|
b54ceff639
|
目录扩展: init 接 dir_id (归属校验), files 挂目录, PUT /move + POST /clone (物理复制卷), list 带 dir_name
|
2026-08-10 22:04:20 +08:00 |
|
lou
|
7e81373023
|
目录功能: dirs 表 + POST/GET/DELETE /api/dirs (按用户隔离, 重名409, 非法名400) + 测试
|
2026-08-10 21:52:40 +08:00 |
|
lou
|
96ba2c97ab
|
下载端点去 Content-Disposition (filename 参数): aria2 落盘名=卷序号, 客户端 file_name 走 X-Enc-Params
|
2026-08-10 21:28:32 +08:00 |
|
lou
|
1491b3b4bc
|
修复: pull 端点 aria2 子进程走 asyncio.to_thread (async端点同步阻塞卡死事件循环, pull-status 轮询超时导致进度条0%)
|
2026-08-10 21:00:42 +08:00 |
|
lou
|
1beb1fbb82
|
pull: aria2 输出直通服务端日志 (去 capture_output)
|
2026-08-10 19:36:16 +08:00 |
|
lou
|
f570b36ea5
|
pull: aria2 日志放开 (notice 级, 进度可见)
|
2026-08-10 19:15:19 +08:00 |
|
lou
|
df9502af94
|
aria2 反向拉卷端点 /api/transfer/{id}/pull (并发拉取+receiver校验+失败回退)
|
2026-08-10 19:11:10 +08:00 |
|
lou
|
a81fcfdefa
|
严格隔离: 每账户独立空间, admin 不再全览 (只 admin/无主旧文件); 测试更新
|
2026-08-10 18:45:22 +08:00 |
|
lou
|
4be951fe4a
|
api: GET /api/auth/me 当前用户端点; README
|
2026-08-10 15:36:36 +08:00 |
|
lou
|
6b0d163ac0
|
存储按用户分目录: storage/用户名/日期/任务ID (物理隔离, 旧数据兼容); 测试断言 admin 目录
|
2026-08-10 15:31:04 +08:00 |
|
lou
|
b79aab5c4e
|
账号体系: users 表 + auth.py(pbkdf2) + 注册/登录/注销端点 + 文件按用户隔离(admin 全部) + 测试 12 项
|
2026-08-10 15:27:45 +08:00 |
|
lou
|
7e6c7d64c6
|
README: 服务端完整文档; LICENSE: MIT
|
2026-08-10 14:46:24 +08:00 |
|
lou
|
cd4292e70b
|
业务日志: 端点事件记录 (init/chunk/complete/ls/download/delete/quota + 客户端 IP); watchdog 防重复改 flock 锁 (pgrep 会误伤调用链)
|
2026-08-10 13:47:21 +08:00 |
|
lou
|
cac0af49f3
|
自启动+看门狗: start.sh 幂等拉起服务+watchdog, watchdog 30s 检查自动恢复
|
2026-08-10 12:45:21 +08:00 |
|
lou
|
da087591ed
|
task_manager: 文件名清洗不删路径分隔符 (加密名 URL-safe base64, 路径安全由客户端兜底); 测试 9 项
|
2026-08-10 02:10:07 +08:00 |
|
lou
|
cb80b54285
|
安全加固: init 文件名清洗(255/去路径分隔符) + 卷数上限 10000 + body 1MB 上限; 测试 9 项
|
2026-08-10 02:00:10 +08:00 |
|
lou
|
95ced31222
|
quota: GET /api/quota (used=files size 总和 / quota 默认 10GB SZ_QUOTA env / remain / percent); 测试 7 项
|
2026-08-10 01:42:51 +08:00 |
|
lou
|
dbf32fe55e
|
api: del 支持单文件路径 (旧架构记录); 测试 7 项含 del 断言
|
2026-08-10 01:40:45 +08:00 |
|
lou
|
34496b4bf7
|
零合并重构: complete 只校验卷齐+卷目录 move 入库 (秒回); 下载改逐卷 GET chunk/{n}; 删 assembler; 状态机 uploading->storing->done; 测试 7 项
|
2026-08-10 01:30:19 +08:00 |
|
lou
|
3c4e683210
|
api: 下载响应头 X-Chunk-Count (卷数); db: get_file 带 chunk_count
|
2026-08-10 01:24:18 +08:00 |
|
lou
|
fc522afbaf
|
零知识重构: 服务端只存密文 (删 decrypt/keyring/unpacker), complete 合并即存, download 返回密文+enc_params 头, 全端点 Bearer token 认证; 测试 7 项
|
2026-08-10 01:06:33 +08:00 |
|
lou
|
eba9d36450
|
api: complete 幂等 (已完成直接返回 file_id, 客户端超时重试不重复入库); db: get_file_by_transfer
|
2026-08-10 01:00:23 +08:00 |
|
lou
|
cf1f143a0c
|
api: 新增 GET /api/files (ls) + GET /api/files/{id} (下载流式返回); db: list_files/get_file; 测试 6 项
|
2026-08-10 00:46:08 +08:00 |
|
lou
|
e30178391b
|
settings: 默认路径去掉 server/ 前缀 (独立项目根后遗留)
|
2026-08-10 00:22:31 +08:00 |
|
lou
|
680fbaaa5f
|
db 层换 SQLite: PRoot 容器 PG fsync 卡死, 轻量文件库 (表结构兼容, 可切回 PG)
|
2026-08-10 00:21:22 +08:00 |
|
lou
|
9924e5fb8e
|
unpacker/decrypt: 裸 dict 泛型补全 dict[str,Any]
|
2026-08-09 23:36:08 +08:00 |
|
lou
|
e782a92a0c
|
api: _sha256 补类型注解 str|Path
|
2026-08-09 23:35:36 +08:00 |
|
lou
|
554dd34788
|
集成测试: 全链路还原/坏卷409/缺卷409/幂等/404 5项全过 (真实PG+FastAPI+密码学)
|
2026-08-09 23:28:07 +08:00 |
|
lou
|
28654c0056
|
服务端 9 模块骨架: api/receiver/assembler/unpacker/decrypt/storage/db/keyring/task_manager
|
2026-08-09 23:24:03 +08:00 |
|