美文网首页
新的发现

新的发现

作者: 木兰参can | 来源:发表于2022-08-30 13:32 被阅读0次

    在看fsnotify源码时,竟然发现,原来windows系统建的文件也是有唯一标识的,只要所在盘符不改变,文件可以随意移动修改重命名,这个标识都不会变化。改变思路不再监控文件变化了,监控变化也有个大问题是,它不递归监控子目录,但自己去加了监控后,将导致目录下有目录时,这个上层的目录不可修改,不可删除,这就是大问题。云端往本地同步时候也将因为这个目录被控制,而拿不到操作权限。

  既然,文件或目录创建后,在本地也有标识这个文件/目录的唯一值,将用这个联系起来,比如用map key value,绑它的标识暂且叫ino吧,绑index和(文件路径、文件云端id ,父级id,本地创建时间修改时间,md5值,等有用的信息),当然路径可能变化,可能被重命名,也可能被修改,不管怎样,ino不会变。

    可能还需要路径作为key,ino作为value是另外一个map

    对于首次同步,是要云端本地互相同步补充。后续的同步,是要同步变化的部分。

  原先云端往本地同步的逻辑不变,对比新旧xml,拿到云端要对本地要做的操作,作业到本地,这时候,根据不同操作,要添加或者删除或者更新一下前面的map。比如文件被覆盖了后,ino应该会变化,根据路径拿到对应的ino,其实不从这个map拿,只要路径存在,就可拿到ino,更新一下当前文件的创建时间,修改时间,md5值。如果云端有删除,要从map中delete掉。文件有md5值变化,要重新下载覆盖,也补充到ino。重命名,修改map中的数据。不存在的文件下载并补充到map,被覆盖的文件从map中移除,创建的目录也要补充到map。要考虑中间某个操作可能失败。上面这段是云端同步至本地完成,会产生一个新的xml,这里有当前所有文件或目录的详细数据,包括文件或目录在云端的id和dirId。

  上面的作业完成之后,但是不保证这期间,这些文件会不会被本地动,这样的话,这个map与最新的情况可能并不一致,但是这个map可以作为,本地同步至云端时的参考。

  一个协程定期,比如几秒钟执行一次,更新一个最新的map,这里可能会有些文件信息的缺失,比如还未同步至云端的新建的文件或目录并没有id和父id。可以通过通道发送给另外一个协程,另外一个协程拿一次它的信息进行数据补充。

   

    参考前面的map数据,补充进去本地文件云端相关的id,父id,当前这个目录里的路径视为是最新的,云端同步过来的,不要再重复往云端同步,比如有个标记,后续再又本地修改,把标记置位。之前的map是老的路径,当往云端作业时,依据路径和文件md5变化,得知往云端作业是是要转移路径,重命名,还是覆盖上传,这三个操作可能一条比较有需要多个操作,可能既要重命名又要覆盖上传,既要转移又要重命名,又要覆盖上传。文件md5发生变化是需要上传。以及删除(老的map中有的,新的map已经没有了),新增(老的有,新的没有的)。也可以在本地做这些同步期间暂时把这些所有文件或目录锁定,不允许操作,但这个动作一定要云盘同步至本地后,这样就保证了,不会刚要传云端就操作本地,导致本地往云端同步,真的去作业时,发现原文件找不着了而出错。等这一批作业完毕后,再允许随便操作。可以只锁需要同步至云端,尚未完成的部分。已经完成就解除锁定,这样缩小锁定的范围,其他文件或目录仍然是可以操作的。

相关文章

  • 新的发现

    一轮复习对我来说算是预习吧,但掌握知识的感觉好赞

  • 新的发现

    我今天很开心,又一个新的发现,新的突破,希望自己变成一个全新开始,更上一个新台阶。

  • 新的发现

    嗯嗯~就是突然发现了简书 可以在这写东西咯 准大四应届毕业生了 距离18考研还有174天 明天考试周 加油!

  • 新的发现

    空闲之时,偶尔发现有记录生活点滴的小平台,新奇地小试一下。 我是个老人,年轻爱好舞蹈、画画,一直是宣传...

  • 新的发现

    撰文:孟小宝 今天朋友对我说,觉得我今天超级嗨,我说没觉得呀,我实在想不起来我今天哪里超级嗨,其实今天我都做了些什...

  • 新的发现

    2019.12.24 今天有新的发现,在上班的地方不远发现了一个录音棚,一路上跟大家讨论,觉得这样的地方还有录音棚...

  • 新的发现

    从我开始整理自己的生活那天起,我发现在我的生活中有很多方面是需要我去整理,并且调整的,例如生活上的花销,家里的理财...

  • 新的发现

    今天早上起来练了三十分钟瑜伽,然后中午的时候画了一幅还不错的画!但是看书没有完成。明天需要补上。今天听到一个...

  • 新的发现

    一天,妈妈从网上买了几包辣条,但妈妈不给我吃,她说:“女孩子不能吃辣的,吃多了脸上会长痘。”但我还是想吃,于是,...

  • 新的发现

    我从大洋的此岸航行到了大洋的彼岸, 从春暖花开的春天来到了秋风萧瑟的秋天, 发现春秋的更替如同思考空间的转换, 就...

网友评论

      本文标题:新的发现

      本文链接:https://www.haomeiwen.com/subject/ndmlnrtx.html