🔁 WebDAV Sync:通用、稳健的 WebDAV 同步插件

WebDAV Sync 是另一个 Obsidian 的非官方同步插件,类似于 Remotely SaveLiveSync

GitHub 仓库:

为什么需要另一个同步插件?

虽然社区中已有许多解决方案,但(基于个人经验)没有任何一个能完全满足我的需求(绝无歧视,皆基于事实):

  • Remotely Save:支持众多厂商,但目前处于维护停滞状态且存在大量 Bug(例如“deleted files come back”(已删除的文件会重新出现),你可以在 GitHub 上搜索同名 Issue 验证)。
  • Git Integration:对技术用户而言很理想,但作为日常同步方案过于沉重。
  • Syncthing Integration:优秀的 P2P 方案,但要求你的设备中至少有一台必须始终保持在线。
  • LiveSync:最为稳健,但需要自建服务器。

我还发现了 Nutstore Sync,这是一个优秀的同步插件,但专为 Nutstore 设计。于是我想到:为什么不把它做成通用型的呢?因此我将其 Fork,并进行了全面的重构,以消除厂商锁定、提升性能与稳定性。

如何安装?

该插件已提交至 Obsidian 官方发布仓库进行审查,以便纳入插件注册表。此流程可能需要数月时间。在此之前,你可以通过 BRAT 插件来安装:

  1. 进入 社区插件,搜索 BRAT
  2. 安装并启用它。
  3. 进入 BRAT 设置,点击 Add beta plugin,将 https://github.com/hesprs/obsidian-webdav-sync 复制粘贴到 Repository 字段中。
  4. 选择最新版本,点击 Add plugin
  5. 启用该插件,配置你的 WebDAV 服务,即可大功告成。

网络受限用户的安装方案

中国大陆地区的 GitHub 连接状况不佳。如果您遇到此类问题,请按照以下步骤手动安装插件:

  1. 使用 GitHub 加速网站(例如 此站)。
  2. 复制、粘贴并转换以下链接以进行下载:
    • https://github.com/hesprs/obsidian-webdav-sync/releases/latest/download/main.js
    • https://github.com/hesprs/obsidian-webdav-sync/releases/latest/download/manifest.json
    • https://github.com/hesprs/obsidian-webdav-sync/releases/latest/download/styles.css
  3. 在文件管理器中打开 <您的仓库>/.obsidian/plugins/,新建一个名为 webdav-sync 的文件夹。
  4. 将下载的这三个文件移动至该文件夹内。
  5. 打开 Obsidian,确保关闭“限制模式”(Restricted mode)。此时您应该能看到 WebDAV Sync 插件已可用。
  6. 注意:通过此方式安装的插件无法自动更新。建议您定期重复上述步骤以获取最新版本。

结语

尽管在我使用的过程中,该插件表现相当稳健,但为了预防意外数据丢失,建议在使用前 备份你的仓库

如果你认为我的工作有用,请给我一个 GitHub Star :star:!如有其他问题,欢迎在下方留言!

8 个赞

试了试,的确是非常好的插件:+1:可惜我的alist似乎有点问题,删除的时候同步会报错Method Not Allowed

这种情况比较少见。能否请您提供一下支持日志(路径:设置支持报告导出为笔记)?或者,您也可以直接在 GitHub 上提交一个 Issue。

找到问题了,是alist配置问题,和插件本身无关。

我配置的alist的删除行为是将其移到./回收站目录中,可能是由于alist配置的权限问题或是我未创建./回收站,alist在删除时会提示操作失败。因此webdav操作时会报错 Invalid response: 405 Method Not Allowed,我改为永久删除后就可以正常同步了。

非常好的插件,已star,抱歉叨扰。

note fast sync 你值得拥有,毫秒级的。比webdev好用多了。webdev同步都是几十秒,慢的很。

我搜索了一下,Note Fast Sync 与 LiveSync 非常相似。但对于大多数普通用户来说,搭建服务器并将其暴露到公共互联网涉及高昂的成本和较高的技术门槛。而 WebDAV 可能是对他们而言最易用的方式,因为目前已有部分免费的公共互联网服务可供选择。

已经使用,比 Remotely Save 新颖稳定,Remotely Save是很久没更新了。
解决了Remotely Save的下面问题:

  1. 文件名中间有空格,会同步错误
  2. 偶尔同步不成功,但不会提示,WebDAV Sync每次都同步成功。
  3. 只在最后简单提示同步的成功已否。WebDAV Sync 有个界面展示同步进度,和删除哪些文件,令人安心。

试用很好用,但突然发现两个bug。
插件 2.0 版本,没用github,只能在论坛提了 :pray:

  1. 小bug,md文档的内容如果只改一个数字,比如"6"改成"7",并没有同步到"webdav服务器",已经查看服务器文件确认,但敲击个空格能同步。(不是bug,设置里同步模式改为"严格"能解决这个问题。)

  2. 严重bug,会擅自重命名.md文档里的图片名,然后插件新建上传了很多重复的图片,又删除了很多多余的图片,最后导致文档里的图片引用丢失。

【场景复原】


图1: :white_check_mark:原始正确文档,插入并只有三张图片 “词的理解.png”、 “词的理解1.png”、“词的理解2.png”


图2: :x:错误结果,由于 WebDAV Sync 同步会混乱的改名以及删除图片附件,最后导致文档里的图片引用丢失。


图3:插件同步界面:每点一次同步,同步插件会擅自把这3张图片重命名(并修改文档里的图片引用链接):“系统.png”、“系统1.png”、“系统3.png”、
“词的理解-3.png”、“词的理解-4.png”、“词的理解-5.png”、“语言-1.png”、“语言-2.png”、“语言-3.png”、“语言-4.png”……


图4:然后改名会导致在"附件文件夹"里新建很多图片(那3张图片的重复副本)


图5:并删除很多多余的图片(那3张图片的重复副本)

感谢您的反馈,很抱歉给您带来了困扰。我会尽快进行调试修复。


编辑:已解决。这本身并非 WebDAV Sync 的 Bug,而是该插件与另一款名为 paste-image-rename 的插件之间的兼容性问题。