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