Skip to content

v0.2.1:修一批漏文件、算错数的问题

Choose a tag to compare

@mingyangbest mingyangbest released this 03 Nov 13:27
· 28 commits to main since this release
eaa5b2d

这一版没有新功能,都是修问题。改动来自把 v0.2.0 从头到尾逐行读一遍之后确认的清单。

修好的问题

  • 排除规则对文件不起作用。界面上写的是「排除的目录 / 文件」,示例还给了 *.tmp,但程序只拿它排目录,文件一个都没排掉。现在目录和文件用同一份规则,跑完日志里会写明这次用了哪几条。
  • 空文件两边处理相反。目录同步是悄悄跳过,日志上看不出来,.gitkeep 这种文件就这么丢了;脚本推送则是遇到一个空文件整批都不传,100 个文件里混一个就全废。现在目录同步单独计数并写日志,推送只把这一个记成失败,其余照传。
  • 分片数少算了一片。20MB 的文件被切成 8MB + 12MB,8 到 16MB 的直接整包发一片。云盘目前收得下,但片数和实际对不上,服务端哪天较真就会变成小文件能传、大文件全挂。改成向上取整。
  • 新建任务的路径校验只做了一半。以前只比字符串开头,/vol10 会被 /vol1 放过,软链接也能绕到目录外面;编辑任务完全不校验,还能改成跟别人重名。现在按真实路径比,新建和编辑共用一处,重名直接拒绝。
  • 改任务名可能撞车。以前改名不查重名,撞上直接报 500。现在提前拦住。
  • 令牌文件有个很短的 644 窗口。以前先换文件再改权限,中间有一瞬间谁都能读。改成先改临时文件的权限再换过去。

新增

  • 孤儿扫描多了「含已排除」的视角。排除规则生效之后,以前传上去的 *.tmp 会被规则挡住,从孤儿清单里消失,可它还在占配额。现在可以专门扫一遍这些被规则藏起来的条目,仍然只列不删。

其他

  • CI 的编译检查改成扫目录。以前是手写文件清单,漏了 app/orphans.py 这个文件。
  • 云端占用那行注释写「6 小时缓存」,代码其实是 24 小时。按代码改了注释。

升级前看一眼

  • 可以直接覆盖升级。任务配置、运行记录、令牌格式都没变。
  • 任务里配了排除规则的要注意:升级后文件会真的开始被排掉,之前一直在传的 *.tmp 这类文件不再上传。这是本来该有的行为,不想这样的话,先把规则里管文件的那部分删掉。
  • 大文件断点续传这一版没做,在 v0.2.2 里补上了。