又一次的 Obsidian 同步失败

今天下午我抽空实践了一下之前想的一个事,就是把我近几年的 Obsidian 仓库整合起来。我的 Obsidian 是每年一个仓库,之前是想便于整理,因为直到目前,我仍然没有找到最合适的整理方法。每年一个仓库,差不多是比较合适的选择。

但这样也带来了不足,时常想找一个信息,我清楚的记得我在 Obsidian 里面记录过,但搜索却又找不到。半天反应过来,这条信息应该是在往年的仓库中。于是我想的是,在还没有进化我的整理方法之前,我创建一个“历史记录”的文件夹,把每年的仓库按照每年一个大文件夹的方式,都复制进这个“历史记录”的文件夹之中。

所以下午,我在电脑上进行了这样的操作。其实感觉还挺不错,我整理了往年有些缺陷的地方,以及没有来得及编辑的索引,顺便在大脑中回忆了一下之前发生的事情。其实都挺美好,直到我尝试同步。

我使用 Remotely Save 插件,通过坚果云的 webdav 服务进行同步 Obsidian 仓库。这个插件我几年前就知道它,当中尝试过三次左右,总算是摸清了它的使用方法,当中也经历过多次踩坑,造成我的记录丢失的情况。今天我整理好本地仓库点击同步时,发现总是报错,报的错误记忆中是 500 错误,也就是服务器出问题了。我心想几年没遇到过坚果云服务器出问题,或许这次碰巧了,不如等一会儿估计可以自行恢复。结果总是不行,心想或许是触碰到了 webdav 服务的限制。于是去查了一下,发现坚果云对第三方的 webdav 设置了限制,单次数据量不能超过 500M。而我从 2022 年以来的仓库一合并,刚好超出了这个限制十几 MB。

我看了一下,一时也没找到其他可以替代的服务,于是心想不如自己用 docker 在 VPS 上跑一个。自从我会用 NPM 进行配置后,我的网站上的服务都已经 docker 化了,也比较有信息。我于是问 AI 给我提供了一份 docker-compose.yml 文件,然后就装上了。因为时间长了比较生疏了,安装好后总是提示我域名无法解析,反复试了多次后才想起来,配置完 NPM 后,还需要给二级域名配置解析,我配置好后,就成功了。

配置好之后,确实可以同步到我的 VPS 上面了。我找的这个配置不包含网页端的验证,因此谁都可以访问我的 webdav 页面,查看上面的文件。虽说我在 Obsidian 的同步里配置了端到端加密,但总归是不保险吧。我尝试在 NPM 上加上了访问控制,结果 Obsidian 也没法同步了,只得将这个选项先关闭。

之后我在手机上进行配置,这时候灾难发生了。我轻浮的直接在手机上进行了同步,边同步边在手机上欣赏关系图谱的变化。然后我惊讶的发现,关系图谱的节点不是逐渐增多,而是在逐渐减少,我意识到了不对。当我终止同步时,电脑和手机上的仓库只剩下了文件夹框架,里面的内容文件一个不剩。我其实心里也不是很慌,因为坚果云里面还有加密后的档案,只是麻烦点,但是这种情况让我很恼火,搞得我一晚上心情都不是很愉快。但没办法,数据最重要,只好一点一点先把数据恢复再说。

在这个过程中,我猜测可能碰到了坚果云的什么规则,好几次遇到了 503 错误提示,需要等一段时间才恢复,偏偏这个时候,坚果云网页端的下载功能也不起作用了,着实让我着急了一段时间。等终于把坚果云上面的数据恢复了下来,再想同步到自己的 webdav 服务器上时,也发现了问题,速度比坚果云要慢很多,我等到很晚,才只同步了不足一半,最终我也只能放弃。

最终,我设计了一个方法,就是分成两个仓库,一个是 2025 年的记录,另一个是历史记录,两个仓库目前都不超出坚果云第三方客户端的同步限制,算是可以正常使用了。虽说比我一开始设想的都放在一起的方法要麻烦一点,但总是可以实施的了。我还想了一个方法,就是在 2025 年仓库的基础上,分批次的把历史的记录挪进来,同步了之后再挪一部分,老鼠搬家的方式最终把两个仓库合并。这只是一个猜测,不确定是否可行。就算可行,在需要给新机器同步的时候,也会比较麻烦吧。

我依旧十分怀念 Obsidian Sync 这个官方的同步服务,除了价格贵之外,我基本上没有遇到数据丢失、冲突的问题,我想应该是在开发的时候考虑到了很多种情况,免费的解决方案还没看到有功能差不多的。

发表评论

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理