多终端文件同步:syncthing

概述:

一直想自建云盘,经过很长时间的筛选体验最后选择了 syncthing,很完美的符合我的要求。

一:明确自己的需求是什么

我要求能多终端同步,还要有一个管理界面;对,我说的就是 nextcloud,以上的要求 nextcloud 几乎都能实现,但是问题就在于我真正体验以后,发现这玩意儿其实有点过誉,网上很多人吹捧这就是自建云盘的首选,也有很多搭建教程,但是,没有几篇文章是真正谈实际体验的。

所以我来说一说 nextcloud 的使用感受,首先给我的感觉就是比较臃肿,而且是用 PHP 写的,感觉服务器性能要求要高一点,用起来反应有点慢;

同步功能上的缺点:

1.对网络波动较大的环境支持不友好,很容易出现同步失败

我在学校电信网络下亲身经历(垃圾电信,50M带宽上传限制 1m/s,而且不能持续占用上传)

所以导致文件同步时不时会 GG,配合 win10 的声音提醒功能,能让人头皮发麻,一段时间内会看到大量的报错。

2.多文件同步支持不友好,最多只能3线程,上传逻辑混乱

上传顺序貌似是按本地文件夹内的文件摆放顺序进行依次上传的,这会导致什么问题呢,一个大文件由于网络波动上传会经常失败,会导致后面的小文件堵塞基本没法继续上传,关键这个没法调上传顺序?线程可以调配置文件,但是很麻烦。

3.同步逻辑很奇葩(我最反感的一个诟病,难道是我的使用姿势不对?)

nextcloud 一切以云端文件为主:

问题①:

当本地文件删除以后,它会自动又从云端下载文件到本地(当我第一次经历这个问题的时候,黑人问号.jgp what the fuck?)

问题②:

当云端文件被删除以后,本地文件也会被删除(。。。摔电脑)

问题③:

这一切都没法调,没有单项同步或双向同步相关的设置,但可以使用 Microsoft store 里的一个第三方客户端选择单项还是双向同步,但是这个客户端比官方的还难用,所以我拒绝

4.文件查重问题

当本地文件和云端文件一样时,就会产生冲突,会让选择保留哪一个文件。

我感觉 nextcloud 在处理这个问题上逻辑简单得就像只判断 文件名是否一样 来区分是否冲突(实际上肯定不是这么简单),总之就是不好使,使用过程中经常出现文件冲突

我遇到的例子:用 MusicBee 听歌,这个软件会给歌曲自动打标签,文件名不会变,只是歌曲的一些元信息会发生改变,大小也会略微有变化,这时候就冲突了;

nextcloud 会自动重命名冲突文件(修改后的文件)放在旁边,然后提示你处理,我的处理办法是删掉旧的,等待新歌曲同步,然后,他娘的又从服务端把旧文件给我下载到本地,继续告警冲突(wdnmd),这是什么神仙操作?

难道服务端不应该通过 哈希值 这样一些高级一点的参数来判断文件是否重合吗?(只是我的猜想)

那是不是我在同一份 Word 里面做了修改也会出现冲突啊?(没有验证过),我想,这个软件经过这么多年分发展应该不至于连这些小问题都处理不好吧,但问题在哪里我也真不知道。

5.一些小问题

因为 chrome 强制 https 所以 chrome 里打开界面看不到 公开分享 按钮,其他浏览器就没毛病。
nextcloud 在浏览器上的 cookie 不会过期(或者说过期时间很长?)亲测超过一天都不会过期;这会导致在陌生电脑上登陆以后,如果忘记退出账号,那么别人就很容易看到网盘内的文件了,我尝试根据 issues 的反馈修改配置文件,发现没用,问题依旧。

二:网盘程序的选择问题:

为什么我不选 seafile ?这玩意儿的云端文件是分块存储的,想要多终端同步,就必须每个终端都有 seafile 环境才能查看到 块里面的内容,相比 nextcloud 以原数据格式存放,所以一开始就排除了 seafile;

不过听说这个比 nextcloud 好使,后端是 python 开发的,我感觉应该挺不错的吧,不介意上述问题的可以推荐体验一下。

不能盲目黑,还是要说一下优点:

界面美观,拓展程序丰富,能看到元数据信息,作为文件管理器是非常不错的选择

三:syncthing 同步方案:

以上就是被 nextcloud 折磨了一段时间后,决定找替代方案,一番体验,选择了 syncthing

我现在的备份路线图,长下面这样儿:

备份拓扑图

服务器用的是 Kimsufi 的KS3,N2800 处理器,处理器性能超级辣鸡,不过又不是不能用,特点就是 杜甫,没有使用限制,4G RAM+2T HDD 才是我看重的,另外线路特别差,联通网稍微好一点,其他的任何时候都炸,高峰时期基本没法用。

服务器与 OneDrive 或 GDrive 同步用的是 Rclone 堪称神器。

讲一讲 Syncthing 的优点:

nextcloud 的缺点,在 syncthing 上就是优点的体现,软件主打同步功能,所以能力非常优秀,而且资源占用也不高;

例如,软件是分块多线程传输的,基本能把宽带跑满;可以自由选择 单双向同步,可选择从小到大同步文件;

最重要的是 两台内网 机器也可以实现文件传输,只要在软件内设置一下就行。

实际使用上也遇到过文件冲突,但是解决办法绝对比 nextcloud 优秀,但是我感觉还是不适合动态实时同步(没有验证过,只是简单凭感觉) ,对文档的修改需要实时同步的还是选 onedrive ,坚果云 或 dropbox 这样的专业云盘才行。

总结:

我现在的是 nextcloud 和 syncthing 都在使用,另外还有 aria2+tr 等一些程序,内存才占用不到 700M,略有一丝惊讶,跑了很多程序才占用这么点内存,反而 CPU 日常不够用,docker 应该有很大的功劳了。

实际使用中,也不光做文件的同步,还有离线下载啊,挂 PT 啊,配合 nextcloud 做文件管理,sync thing 拉取到本地,可以说是下载和存储的一套完整解决方案,体验不输 百度云之类的网盘,主要就够折腾,遇到问题要自己解决,不过抱着学习的态度,生命不息,折腾不止。

版权声明:本文为原创文章,版权归 乌影‘s blog 所有,转载请注明出处!
本文链接:https://wuyn.net/22.html
如相关链接出现404,可以在文章下面评论留言。

Last modification:September 6th, 2019 at 11:23 pm

Leave a Comment