背景

主要是为了方便听歌,因为每家的版权都不同!只想一个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

在配置页面中点添加文件夹,填写文件夹标签和路径

image-20240222134827405

版本控制这里就不需要了,反正不是双向同步(

然后文件夹类型改为仅发送,顺便勾上忽略文件权限,扫描间隔就默认即可。

image-20240222135028855

2. Android

点到设备,然后点右上角加号,然后点二维码,扫描PC端的设备ID即可添加设备

image-20240222135830558

3. PC

此时在管理页面上方会出现一个请求,同意一下就可以添加远程设备了

image-20240222140126645

然后编辑文件夹,共享给远程设备

image-20240222140156763

4. Android

点左侧菜单,点网页管理页面,就能见到和PC端一样的页面了,我们在这里进行文件夹的设置

此时应该能在文件夹那里看到PC端共享的文件夹了(可以对比一下文件夹ID,是一致的),改一下文件夹路径为实际要同步的路径,文件夹类型为仅接收,同样勾上忽略文件权限

然后就可以愉快的同步了!

其他

如何删除接收方多余的文件

比如在使用同步之前,两端已经都有文件了,然后接收方那里有一些多余的文件

此时只要点击一个恢复本地更改的红色按钮,再点确认就可以了

这下就可以完全同步了,此后的文件,在PC端删除或者增加,另一端也会自动同步

如何实现一端删除文件,另一端不删除

可能会有朋友有这样的需求,这里顺便cv一下(

实际使用,发现问题:

  1. 若是手机(仅发送)上的文件被删除,PC(仅接收)上的文件也会同步被删除

出于我为手机腾空间的需求,需要避免这种问题的发生。

方案1:启用文件版本控制

这是Syncthing的界面上摆在明显位置的功能。启用之后,在手机上的文件被删除时,PC端上的文件会被移入特别的垃圾箱。

使用版本控制

方案2:启用Ignore Delete

文件版本控制虽然能够让你的文件不被删除,但是还是太不优雅。越想越不对劲,Syncthing这看起来牛逼哄哄的软件咋可能没这功能呢?
经过我一番搜索,得知还有一些功能藏在高级设置里。

打开设置页右上角的操作-高级-文件夹,选择你需要配置的文件夹,找到Ignore Delete选项,将其勾选并保存。

启用Ignore Delete

官方对这个选项的解释:IgnoreDelete

这样,在手机上删除文件时,就能保留PC上的文件了。

需要注意的是,这个选项只是忽略了删除命令,当文件被覆盖时,可能会引起旧文件的丢失。所以建议与版本控制一同使用,以防万一。

参考链接

使用Syncthing进行单向备份 - 我只会摸鱼 (zhouym.tech)