dr34m-cn / taosync

TaoSync是一个适用于AList V3的自动化同步工具/sync for alist
GNU Affero General Public License v3.0
71 stars 6 forks source link

如何区分“不同”的文件呢? #12

Open uiharuayako opened 2 weeks ago

uiharuayako commented 2 weeks ago

我理解备份的本质功能,就是对比源路径和目标路径的内容,如果源路径的文件和目标文件存在不同,则把源路径的文件覆盖到目标路径

阅读源码,看到有getSrcMore这个函数,通过比较文件大小的区别来判断来源比目标多的文件。但是有些情况下文件发生改变时不一定会带来文件大小的改变,比如说,有一份配置文件,之前文本是“enableDevice:0”,现在改成了“enable:1”,这种情况下文件的大小不会发生改变,系统还能识别到文件发生了变化吗

dr34m-cn commented 2 weeks ago

你说的情况存在,目前也确实无法识别,我们初始设计时就意识到了这个问题,更合适是做法是计算文件hash值。但是由于很多文件都在网盘,计算hash值意味着要把网盘文件下载下来进行计算,这将耗费难以想象是时间和代价;再者由于目前基于alist,哪怕是计算本地文件都很难做到,所以目前仅比较文件名与大小的方案并不完善。

后期等待我们做好自己的不基于alist的引擎后,将考虑给用户选择权,是简单比较大小,还是愿意花时间计算hash值。