2.9 KiB
2.9 KiB
Changelog / 更新日志
All notable non-WebUI user-visible changes should be documented in this file, newest version on top. 本文件记录所有非 WebUI 的重要用户可见变更,最新版本在最上方。
The format loosely follows Keep a Changelog and can be adapted to the team's habits. 本文档参考了 Keep a Changelog 的思路,也可以根据团队习惯调整。
[Unreleased]
Added / 新增
- API: resumable chunked upload protocol for large files —
POST /api/libraries/:id/upload/init(fingerprint-derived deterministicuploadId, rejects totals overUPLOAD_MAX_MBwith413 too_large),PUT /api/uploads/:uid/parts/:index(parts ≤ 32MB),GET /api/uploads/:uid(received parts, for resume),POST /api/uploads/:uid/complete(assemble + atomic land, same path contract as single-POST upload). Sessions persist underBOOKS_DIR/.uploads/with 24h opportunistic sweep.UPLOAD_MAX_MBis now wired through both compose stacks/.env;.env.examplesets 2048 and dropsNGINX_CLIENT_MAX_BODY_SIZEto 32m (nginx only ever sees one chunk). - API: 新增大文件可续传分片上传协议——
POST /api/libraries/:id/upload/init(按指纹派生确定性uploadId,总量超UPLOAD_MAX_MB返回413 too_large)、PUT /api/uploads/:uid/parts/:index(单片 ≤32MB)、GET /api/uploads/:uid(查询已传分片以续传)、POST /api/uploads/:uid/complete(拼接后原子落盘,返回与单发上传一致的path)。会话存于BOOKS_DIR/.uploads/,超 24h 顺手清理。UPLOAD_MAX_MB已接入两份 compose/.env;.env.example调至 2048 并将NGINX_CLIENT_MAX_BODY_SIZE降为 32m(nginx 只见单个分片)。
Changed / 变更
- API: upload over
UPLOAD_MAX_MBnow returns413 too_largewith the limit in the message; previously the size abort was misreported as400 bad_request "multipart field 'file' required". - API:超过
UPLOAD_MAX_MB的上传现在返回413 too_large并在消息中带上限额;此前体积超限被误报为400 bad_request "multipart field 'file' required"。 - API:
POST /api/librariesnow takes only{name};root_pathis generated server-side asBOOKS_DIR/<sanitized name>(no client-supplied paths, validated at creation). - API:
POST /api/libraries只需{name};root_path由服务端生成为BOOKS_DIR/<清洗后的库名>(不再接受客户端指定路径,创建时即校验)。 - Repo structure conformed to
AGENTS.md:web/renamed tofrontend/; backend HTTP layer moved frominternal/apitocmd/webui/{api,handlers}(cmd/server→cmd/webui); README/CHANGELOGs relocated underdocs/(README_zh.mdadded as Chinese mirror); module-level.gitignores added (backend/,deploy/); stray rootlibrary/removed (book files live indeploy/api/storage/); debug binaries untracked. - Docs:
docs/README.mdis now the English primary; previous Chinese README mirrored todocs/README_zh.md.