Repository navigation
v0.2.1:修一批漏文件、算错数的问题
这一版没有新功能,都是修问题。改动来自把 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 里补上了。