Skip to content

v1.1.0

Choose a tag to compare

@lvv123 lvv123 released this 04 Nov 12:52
· 4 commits to main since this release

v1.1.0

移动端适配、审计修复与上传核心重构。

下载

file-server-1.1.0-win64.zip 解压后包含:

文件 说明
file-server.exe Windows x64,MSVC 2022 Release 构建,静态链接 CRT,无需安装 VC++ 运行库
config.json 默认配置:8080 端口、数据目录 ./data、分片 16 MB
README.md 完整文档
LICENSE MIT
file-server.exe -c config.json

然后用浏览器打开 http://127.0.0.1:8080/。首次运行会在 ./data 下自动创建 files/、tmp/、meta.db。

自 v1.0.0 以来的变更

  • 移动端适配:文件列表、上传进度、对话框和操作菜单在手机/平板上可用,390px 宽度下布局正常。
  • 代码审计修复:覆盖路径校验、下载锁、会话清理、审计写入等审计发现项。
  • 上传核心重构:upload_chunk 的临时文件清理改由 PartFile RAII 守卫负责,函数拆分为校验、写入、提交三段;新增失败路径不再可能遗漏 fclose 或残留 .tmp。
  • 可测试性:抽出与框架无关的 BodySource 接口,BodyGate 在传输层实现它;upload_chunk 新增 14 个单元测试(长度不符、短包、长包、重复分片、位图更新、零字节会话、未完成合并等)。
  • 版本号更新为 1.1.0(--version 与管理接口同步)。

功能

  • 分片上传 + 断点续传,每片一个独立请求、请求体为原始字节;浏览器端保持 4 个分片并发
  • 流式下载 + HTTP Range,正确返回 206 / Content-Range,多区间与越界返回 416
  • 文件与目录管理:列表、新建多级目录、重命名、删除、覆盖上传(临时文件合并后原子替换)
  • SQLite 索引的全库文件名搜索
  • 全量审计日志(成功与失败都记录),按天数与容量两条策略滚动清理
  • 仅本机可访问的管理后台:状态页、审计查询、删除

验证情况

  • 单元测试:94 用例 / 589 断言通过
  • 接口测试:66 项通过,0 失败,1 项跳过(磁盘写满用例需要一块接近写满的卷)
  • 4 GiB 大文件「上传 → 强杀进程 → 重启 → 续传 → 合并 → 校验」验收通过
  • 构建:MSVC 2022,/W4,0 error / 0 warning