使用Syncthing实现跨平台设备文件同步
背景
主要是为了方便听歌,因为每家的版权都不同!只想一个app听完所有的,哎,版权
而且有一些只在b站投稿了,我自己扒音频下来听的
过去我都是手动连usb
复制粘贴的,最近突然想偷懒了,看看有没有什么好的方案!
此处省略过程(
总之最终决定使用Syncthing
,因为支持平台宽泛,开源,而且UI好看(?,免费(有一些方案是有一个中间商(云)的,那些基本都要付费((
需求
因为都是在PC端进行音频的下载的,所以我这里PC端的音乐库为主,进行单向同步,分发到其他设备中,保持完全一致(包括增加、删除)
下载Syncthing
PC:syncthing/syncthing: Open Source Continuous File Synchronization (github.com)
Android:syncthing/syncthing-android: Wrapper of syncthing for Android. (github.com)
配置
1. PC
在配置页面中点添加文件夹,填写文件夹标签和路径
版本控制这里就不需要了,反正不是双向同步(
然后文件夹类型改为仅发送
,顺便勾上忽略文件权限
,扫描间隔就默认即可。
2. Android
点到设备,然后点右上角加号,然后点二维码,扫描PC端的设备ID即可添加设备
3. PC
此时在管理页面上方会出现一个请求,同意一下就可以添加远程设备了
然后编辑文件夹,共享给远程设备
4. Android
点左侧菜单,点网页管理页面,就能见到和PC端一样的页面了,我们在这里进行文件夹的设置
此时应该能在文件夹那里看到PC端共享的文件夹了(可以对比一下文件夹ID,是一致的),改一下文件夹路径为实际要同步的路径,文件夹类型为仅接收
,同样勾上忽略文件权限
然后就可以愉快的同步了!
其他
如何删除接收方多余的文件
比如在使用同步之前,两端已经都有文件了,然后接收方那里有一些多余的文件
此时只要点击一个恢复本地更改
的红色按钮,再点确认就可以了
这下就可以完全同步了,此后的文件,在PC端删除或者增加,另一端也会自动同步
如何实现一端删除文件,另一端不删除
可能会有朋友有这样的需求,这里顺便cv一下(
实际使用,发现问题:
- 若是手机(仅发送)上的文件被删除,PC(仅接收)上的文件也会同步被删除。
出于我为手机腾空间的需求,需要避免这种问题的发生。
方案1:启用文件版本控制
这是Syncthing
的界面上摆在明显位置的功能。启用之后,在手机上的文件被删除时,PC端上的文件会被移入特别的垃圾箱。
方案2:启用Ignore Delete
文件版本控制虽然能够让你的文件不被删除,但是还是太不优雅。越想越不对劲,Syncthing这看起来牛逼哄哄的软件咋可能没这功能呢?
经过我一番搜索,得知还有一些功能藏在高级设置里。
打开设置页右上角的操作-高级-文件夹,选择你需要配置的文件夹,找到Ignore Delete选项,将其勾选并保存。
官方对这个选项的解释:IgnoreDelete
这样,在手机上删除文件时,就能保留PC上的文件了。
需要注意的是,这个选项只是忽略了删除命令,当文件被覆盖时,可能会引起旧文件的丢失。所以建议与版本控制一同使用,以防万一。