思源笔记是一款本地优先的个人知识管理系统,支持完全离线使用,充分保障了数据隐私,但这也意味着自己是数据的第一责任人,如果本地存储介质发生风险,数据丢失、损坏将不可避免。好在思源笔记同时也支持端到端加密同步,在保证隐私的同时兼顾了同步备份,为我们的数据安全多了一份保障。
思源笔记的加密同步自上线来并非一帆风顺,作为一个 21 年秋接触的用户,早期论坛上充斥着同步丢失、损坏、难用的贴子,有些甚至会骂的很过分。虽然我本人因为使用环境比较单一,主要是台式和笔记本的同步,未曾遇到上述问题,但在其他用户那就是不好的体验。好在两位开发者一直在听取用户意见,不断优化着数据同步的体验,甚至直接开放了唯一收费的第三方同步配置,目前出现同步问题的可能性已非常低。
在思源笔记 v2.8.6 版本,开发者上线了一个重要功能,即按需下载云端快照。**支持按需下载云端数据快照是一个非常重要的改进,它可以让用户下载任何设备、任何时间点的云端数据快照,为数据安全提供了更多保障。**在以前,数据快照除非自己标记,否则只存在本机中,在 2.8.6 版本后,每次的同步快照会存为云端快照并标记上设备名称,但本机数据发生问题,可按需恢复其他设备的快照保障数据安全。至此可以说,在思源笔记里,出现数据丢失的可能性已经非常低,更多的是不在预期中的数据同步冲突问题,而这个问题通过了解同步原理,良好的使用习惯可以有效规避。
一、同步前要了解的内容
1.1 同步的内容
首先,需要明确思源笔记的同步是指的在多个设备上保持 工作空间/data/
文件夹数据一致,包括资源文件、模板、挂件以及笔记本数据,不包括主题、图标、设置快捷键等。
1.2 同步的原理
其次,需要了解一下同步原理。作为本地优先的笔记软件,和云端优先的还是不太一样,根据官方的介绍,思源的同步原理如下:
思源通过对比云端数据快照和本地数据快照进行相应操作:
-
如果快照相同则忽略本次同步
-
如果快照不同,则将本地距离上次同步的变更上传到云端,将云端最新的变更合并到本地
- 如果两端的变更没有冲突则直接合并
- 如果存在文件冲突,则以本地为准覆盖云端,同时拉取到的云端冲突文件会归入到数据历史中
自动同步时间间隔算法描述如下:
- 数据变动后 30 秒如果不再发生变动则进行一次对比,如果继续发生变动则顺延 30 秒
- 没有数据变动则按 5 分钟、8 分钟、16 分钟、32 分钟……递增间隔
如果需要在创建快照时忽略一些文件,请在文件系统上创建或编辑文本文件工作空间/data/.siyuan/syncignore, 其中每一行使用 data 文件夹的相对路径进行配置,表示忽略文件或文件夹的路径,支持通配符。例如:
- 20210808180117-6v0mkxr/**/*: 忽略 data/20210808180117-6v0mkxr 笔记本
- assets/*.pdf:忽略 data/assets/ 下的 PDF 文件
注意:
- 符号链接和隐藏文件不会被快照
- 如果忽略文件里设置了某个笔记本或笔记,那笔记本或笔记也不会生成数据快照。
如果不能理解,那只需要记住,思源笔记的同步是交替的,不能多个设备同时进行。用我常用的场景举例:
- 在公司笔记本上编辑后执行同步(通过自动或者手动触发同步),此时云端数据会被笔记本数据覆盖,生成一个云端数据快照,既云端和笔记本保持数据一致
- 晚上回到家里在台式机上执行同步,此时台式机上的数据会被云端数据覆盖,即家里台式机和云端、公司笔记本保持数据一致
- 在家里台式机上编辑新内容后再次执行同步,此时云端数据会被台式机新数据覆盖,既云端和台式机新的数据一致
- 第二天上班在公司笔记本上执行同步,此时公司笔记本上数据会被云端数据覆盖,即笔记本和云端、家里台式机新的数据保持一致
该场景下,使用同步的过程是在笔记本和台式机上交替进行的,这样能够保证数据同步符合预期正常完成。但以下场景就会有冲突:
- 在公司笔记本上编辑 a 文件后同步,此时生成了云端快照 1
- 打开手机端(或其他设备)的思源笔记,在未完成同步的前提下编辑 a 文件后同步
- 此时思源发现云端快照 1 和手机端思源笔记的快照冲突,会以手机端的思源笔记的数据为准覆盖云端,生成带有 merge 字样的云端快照 2,同时在手机端上生成之前笔记本 a 的历史文件
- 此时,如果公司笔记本是自动同步的,在极短的间隔内,那它会以手机端生成的云端快照 2 为最新数据,同步覆盖本机,并把本机原先记录的内容作为冲突文档生成在本机,与原理不符,出现了不可预期的覆盖方向。
- 综上,不能同时,或短时间(几十秒内)两个设备同步。使用交替同步!!!
这里附上开发者原话:
注意事项:
- 睡眠或关机等突然断网的情况下不会触发同步,请手动点击同步按钮进行同步。
- 移动端在同步模式是自动、手动同步的情况下切换后台会执行同步(完全手动同步不会),但如果直接杀后台的情况同步无法完成,请在此之前先手动点击标题栏同步按钮进行同步。
- 符号链接和隐藏文件不会被同步。
1.3 同步的方法
最后,请注意,本文所说同步仅包括使用官方同步或官方提供的支持 S3、WebDAV 协议的同步。简单来说,就是可以直接在思源笔记软件-设置-云端中设置的同步。
注意事项:
- 支持 S3、WebDAV 的第三方同步目前是免费公测,开发者表示 2024 年可能会收费。
- 不支持直接使用第三方同步盘(iCloud、Onedrive、WPS 云盘、百度云同步盘等)同步。
二、官方同步
目前阶段,使用官方同步是最为省心的,一开始有 7 天的体验,可以先体验再用。官方同步的价格是 148 元/年,有 8G 的空间,与本地功能的区别只有图上那么一点,比第三方同步多了微信提醒及微信收集箱。
如果觉得价格过高,有团购优惠及教育优惠,可参考链接申请研究一下。有了官方会员后,就可以开始我们下面的步骤了。
注意:以下步骤和第三方同步略微不同,第三方同步不需要前面的账号登录操作。在使用同步前一定要使用设置-导出-导出 data 功能备份一份数据到其他地方,避免出现问题丢失了数据。
- 请先做好数据备份!
- 请先做好数据备份!
- 请先做好数据备份!
2.1 顶栏点击云朵按钮
在未开启同步的情况下,这个图标默认是关闭状态,点击后进入账号登录页面。
2.2 注册/登录账号
如果没有过账号需要注册,会跳转到网页版的链滴论坛,相对割裂,这里我们是默认已经有了会员,输入自己的账号密码即可。
2.3 设置同步密码
登录后就会弹出要初始化同步密钥,因为思源笔记的同步是端对端加密,简单来讲就是本地明文数据要同步时,会先根据这个密钥进行加密然后上传云端,其他设备从云端下载,使用相同的密钥进行解密。密钥基于输入的密码生成,即输入 12345,对应根据算法可能会生成 dsds0329432232%&#@¥。
注意:我们只需要记住自己录入的那个 12345 密码即可。忘记这个密码,意味着云端数据丢失,需要根据本地数据重建云端数据。
注意:其他设备同步录入的密码也是原来的密码,否则会密码错误。如果需要设置新的密码,请删除云端目录重新设置(本地要有数据)
2.4 设置云端目录
录入完密码后就会有一段生成索引仓库的动画,稍等片刻便会进入到设置云端目录的界面。
首次使用,云端目录默认生成一个 main 的目录,如果没有特殊要求可以直接使用。如果像我一样使用了多个空间,需要分别同步,就需要新建多个不同的目录,在不同的设备同步时选择不同的目录来相互隔离。
2.5 立即同步
点击启动云端同步后即可立即同步。
同步过程中顶栏及底栏会有对应的状态变化:
注意:手机端上的设置流程基本一致,参考即可。
2.6 开启同步感知
2.9.2 版本特性,针对官方同步可以启用同步感知,主要功用是手机和 pc 两个设备同时在线时,若一方平台编辑并同步了,另外一方会感知到拉取同步,做到准实时的同步更新。
注意:此功能目前是试验阶段,同时并没有改变无法同时编辑两个设备的现状,依旧是交替同步,只是会比较快的感知同步。最后,非官方同步谨慎开启。
三、第三方同步
再次说明:思源笔记里支持的第三方同步指的是官方提供的支持 S3、WebDAV 协议的同步,不支持直接使用第三方同步盘(iCloud、Onedrive、WPS 云盘、百度云同步盘等)同步。
这里推荐使用 S3 协议同步,性能比 WebDAV 强很多,更顺畅。S3 是指的亚马逊的 S3 协议,并非只能使用亚马逊的服务器,其他厂商一般都有兼容这个协议,比如阿里、腾讯、七牛、百度等等。
链滴论坛有专门的帖子对比了这些厂商的服务和价格,如果想要使用 S3 同步但还没有对应的服务商的小伙伴可以参考下选择合适的服务提供商。
-
当然,有 NAS 家庭存储的,也可以通过自建的方式完成 S3 协议的兼容,或选择 WebDAV 协议。
注意:
- 在使用同步前一定要使用设置-导出-导出 data 功能备份一份数据到其他地方,避免出现问题丢失了数据。做好数据备份!做好数据备份!做好数据备份!
- 第三方同步目前是免费公测,官网已经有了早鸟买断价格。
3.1 配置同步信息
使用第三方同步需要在思源笔记设置-云端中切换云存储服务提供商为 S3 或 WebDAV 并完成里面的设置。
各项内容对应如下,部分云存储的概念可能会不同,可以多加尝试。
3.1.1 S3 同步
主要厂商设置
-
腾讯云 COS 设置
- 目前体验下来,腾讯云 cos 的设置是比较简单的,老用户还有 50g 的空间和 10g 的免费流量额度,可以说非常香了。
- 具体的设置教程可以参考这一篇文章。思源使用腾讯云 OSS 同步详细教程 - 链滴 (ld246.com)
-
阿里云 OSS 设置
- 阿里云作为国内云老大,实力还是有的,根据对比文章,阿里云的整体费用会相对低点,而且时不时有一些优惠打折活动,可以作为首选。
- 具体的设置教程可以参考这一篇文章。思源使用阿里云 OSS 同步详细教程 - 链滴 (ld246.com)
3.1.2 WebDAV 同步
注意,虽然思源支持 WebDAV 同步,但因为频率频次的关系,坚果云本身的限制无法很好支持,故不支持使用坚果云同步,虽然它也是支持 WebDAV 。
使用 WebDAV 协议的大多是 NAS 和国外网盘,比如极空间、绿联等国内 NAS 都支持原生的 WebDAV,可以直接设置后使用,具体教程就没有了,希望有小伙伴可以贡献(没钱买)。
3.2 启动云端同步
① 设置完初始信息后,我们勾选打开启动云端同步,并把同步冲突时生成冲突文档也一并启用,这样有冲突了会在文档树中生成冲突文件。
② 但首次使用时,一般会弹出来下面的提示:请先在[设置-关于-数据仓库密钥] 中初始化数据仓库密钥,这是因为我们直接进入到了云端设置流程,和官方同步的先设置密钥流程不太一致。
③ 看到这个提示(没看到也没关系),我们勾选它后回到主界面,可以看到顶栏的云朵图标会有一个感叹号(没有也没关系),提示说需要初始化,我们直接点击云朵即可开始初始化,根据引导完成同步。
④ 同步完成后可以去对应的服务商的页面查看是否已经上传了加密的文件夹 repo,如下图。
注意:使用 S3 同步时,不需要设置云端目录,在思源笔记中也无法直接控制云端目录,默认以设置中的 Bucket 为准,否则会弹出阻断提示。
四、同步常见问题及应对方案
虽然思源的同步已经有了相当大的进步且相对很稳定了,但使用环境的不同,还是会有一些问题,以下是我收集到的常见问题及应对方案,希望能给遇到问题的小伙伴一点帮助。
问题 1:锁定云端同步目录失败,请稍后再试
遇到这个问题,首先需要判断一下自身使用的思源版本,如果低于 2.8.6 的,升级后一般可以解决。如果本身高于 2.8.6 了,一般则是有多端在同时同步,关掉一端稍等片刻再使用即可。
如果版本低于 2.9.4 的,需要升级到 2.9.4。如果因为系统原因无法升级的(Win10 以下、Mac 10.15 以下),则需要使用自建同步了,官方同步最新的不支持上述系统。
问题 2:云端数据已损坏
遇到这个问题,说明之前同步过程中发生不可预期的快照损坏,当前云端上的数据已不可用。此时需要判断本地是否留存完整数据。
应对方案如下:
① 有本地数据:
重新设置云端目录即可。
- 设置-导出-导出 data,先备份本地数据。
- 设置-云端-关闭云端同步;(所有设备都停止)
- 设置-云端-云端目录,删除出问题的云端目录
- 新建一个云端目录
- 启动云端同步(注意,这里没有重置数据仓库,依然使用原来的云端密码)
② 无本地数据,但其他设备同步过:
其他设备同步过的,可以导出后重新设置,以手机端同步过为例:
-
手机里设置-关于-打开网络伺服。
-
手机和电脑在同一个网络(最简单就是手机共享个热点)。
-
电脑浏览器里输入手机网络伺服那显示的 ip 和端口登录网页思源。
-
打开左上角工作空间的设置-导出 导出 data。(不使用伺服直接手机端导出也可,只要能找到存放的目录)
-
导出后,在本地新建个新的空间,然后再在设置-导出-导入 data 中恢复。
-
按照云端同步的设置重新设置同步。
③ 无本地数据,无其他设备同步过
GG,这个没有办法了,一旦云端损坏,本地没有数据,相当于无法恢复。日常使用推荐 321 备份原则,多备份,放在不同地方。详情可了解永不消失的笔记!全自动的文档备份、加密与安全策略 - 少数派 (sspai.com)。
问题 3:同步失败:无法解密数据。请确保多个设备上使用相同的密钥,然后创建新的云端目录进行同步
遇到这个问题一般是在初始化同步密钥时录入了错误的密码,这个密码是原先设备同步时录入的密码,不是账号登录的密码,也不是设置-关于里那个长串的密钥,录入错误了就只能重置仓库重新输入。
应对方案:
① 还记得正确的同步密码
如果还记得原来的同步密码,那就非常好办:
-
点击左上角工作空间进入-设置-关于-数据仓库密钥-重置
-
重置后,思源会闪烁一下回到主界面,再点击顶栏云朵按钮重新引导同步,录入正确的密码重新同步。
② 不记得原来的密码,但备份过原来的密钥
这里备份过原来的密钥是指的曾经把设置-关于-数据仓库密钥复制到别的地方过,留存有密钥文本,那也非常好办:
-
点击左上角工作空间进入-设置-关于-数据仓库密钥-重置
-
重置后,思源会闪烁一下回到主界面,这时不能通过顶栏的云朵去设置密码,不能!而应回到刚才重置仓库的地方,通过导入密钥完成密钥的输入。
③ 不记得密码,也没有备份密钥
这个情况和云端数据已损坏步骤一致,参考上面方法解决。
问题 4:数据冲突,已为你生成冲突文件
这个问题常见于同时打开多端同步,在极短时间(个人预估 10 秒内)两端都在同步导致,因各端与服务器的交互时间不一致,会发生不可预期的你覆盖我还是我覆盖你的行为。根据思源的同步原理,当发生冲突时,一般以本地为准,把云端的数据生成冲突文件在文档树中。
应对方案:
① 本地的数据是以前的,新的没同步下来
这个也有两种情况:
-
云端同步已启用同步时生成冲突文档选项
- 如果启用了选项,那么在对应文档的文档树上方,会有一个同名文档,但有括号备注 conflict 的文件,里面则是云端的数据,可按需移动数据或增减文件。
-
没有启用生成冲突文档选项
- 如果没有启用,那么可以点击左上角工作空间进入数据历史(alt+h),查看文件历史,找到对应时间的历史记录按需操作。
- 如果没有启用,那么可以点击左上角工作空间进入数据历史(alt+h),查看文件历史,找到对应时间的历史记录按需操作。
② 冲突的文档太多,一个个恢复太困难
在思源 2.8.6 版本,开发者实现了按需下载云端快照的功能,这个功能可以让我们非常方便的恢复其他端的数据到本机。
- 点击左上角工作空间进入数据历史,点击第三个数据快照,选择云端快照,可以看到左边会列出各个设备名对应的同步产生的云端快照,根据时间判断一下需要恢复过去的快照,点击最右方的下载按钮下载到本地快照。
- 点击回到本地快照,选中前面下载过来的云端快照(注意比对 7 位代码),点击右边的回滚即可恢复该快照
问题 5 云端存储服务提供商网络连通性异常,请检查网络配置
几个方向可以排查:
① 建议先看一下电脑时间是不是和实际北京时间不一致。新版的同步会校验本地时间和云端时间,如果两个时间相差过大,会出现这个问题。
② 如果是用的第三方同步,建议检查配置,比如 http 和 https,如果是 s 需要服务器有证书。
③ 网管 ban 了对应服务提供商的地址。注意看思源日志文件里的云端地址是否正常,如果变成了 127 的 ip 可能是因为 ddns 出了问题。
④ 本机使用了代理,思源无法直接通过全局代理使用,要么关掉代理要么就是去设置-关于里设置一下。
⑤ 本机可能有多个网卡,思源走了另外的内网网卡。
我本人的云端同步使用建议
我本人从 2021 年秋接触使用思源至今,真正发生同步问题的次数小于 2 次,也可能是我的网络环境较稳定,同步的设备较少,只有 PC、笔记本、手机三端同步,所以出现的问题少,但在这里还是想分享一点我个人的建议,希望大家都能顺畅的使用思源同步:
-
不要多端同时使用思源进行同步。同时约等于 10 秒内。
-
手机端、平板端同步模式设置为手动同步(启动和关闭、切换后台时会同步)。2.9 以后有了云端数据快照和同步感知,建议开启自动同步,避免遗忘同步。 -
立即同步的快捷键设置为 Ctrl+S,时不时的点一下,保证云端是新的。(本地是实时保存的)
-
找个地方存一下云端的密码,这个密码不要记在思源笔记内(笔记都打不开了怎么找密码),可以放到 Edge 浏览器的个人资料或者微信收藏去。
-
有重大笔记生产时,检查同步和备份数据,并在数据历史-数据快照中标记一份本地快照到云端,这样在其他端恢复时可以一眼看到标记的快照信息。
云端标记快照类似云端备份,会占用云端空间,需要定期删除较旧的快照。
-
其他端的同步可以作为数据的备份,比如手机端时不时同步一下,留存数据,避免电脑密码丢失、硬盘格式化导致的丢失。