🔁 Sync Engine:快速且可扩展的 Obsidian 仓库同步引擎(支持 WebDAV、S3、Google Drive)(原 WebDAV Sync)

Sync Engine 不仅是一个同步插件,更是一个人人都可以为其构建生态的模块化平台。

插件核心仅提供基础设施,所有的后端支持(WebDAV、S3、GDrive)和功能(国际化、性能优化、同步策略)均由可组合的模块提供。您可以通过 SDK 开发专属模块、扩展插件功能并贡献给社区,全程无需修改核心源代码。

GitHub 仓库:

文档:

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

虽然社区中已有许多解决方案:

  • Remotely Save:支持多种后端(S3、Dropbox、OneDrive、WebDAV)。但包含可选的付费项目,且已暂停维护多年,存在稳定性问题。
  • Self-hosted LiveSync 和 Fast Note Sync:提供基于服务器的实时同步。如果您擅长搭建和维护自己的服务器,它们是不错的选择。

Sync Engine 恰好填补了这一空白:您可以自由选择存储服务,插件因未打包无用功能而保持轻量,同时还拥有不亚于自建服务器的高度优化同步体验。

如何安装?

你可以从 Obsidian 插件库中安装它:

  1. 进入 社区插件 并搜索 Sync Engine
  2. 找到由 Hēsperus 开发的插件
  3. 安装并启用它,配置你的 WebDAV 服务,即可大功告成。

网络受限用户的安装方案

中国大陆地区访问 Obsidian 官方插件商店的网络连接可能不太稳定。如果您遇到此类问题,可以尝试以下两种解决方案:

方案一:使用 PKMer Market
  1. 参考 PKMer 教程,下载并安装 PKMer Market 插件。
  2. 登录您的 PKMer 账号。
  3. 在 PKMer Market 中搜索 Sync Engine,请认准由 Hēsperus 开发的插件。
  4. 通过此方式安装的插件支持自动更新,使用体验与官方插件商店一致。
方案二:手动安装

请按照以下步骤手动安装插件:

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

配置:

  1. 前往插件设置,找到 Module management(模块管理),打开面板。
  2. 浏览并安装所需的语言包和后端。
  3. 配置您的后端,自动连通性检查会以图标形式显示在 存储后端 内部。
  4. 开始您的第一次同步。

Performance Benchmark Compared with Rrmotely Save

在某些基准测试指标中,Sync Engine 的速度比 Remotely Save 快了约 100 倍。基准测试详情请参阅文档。

项目 Sync Engine Remotely Save
版本 3.0.0 + webdav 模块 0.1.7 0.5.25
上传 2000 个文件 9.43 分钟 16.4 分钟
下载 2000 个文件 5.87 分钟 13.68 分钟
日常模拟
(原始端,10 轮)
最小值:1.04 秒
中位数:1.44 秒
最大值:48.56 秒
最小值:99 秒
中位数:129 秒
最大值:326 秒
日常模拟
(副本端,10 轮)
最小值:1.06 秒
中位数:1.72 秒
最大值:3.49 秒
最小值:111 秒
中位数:117 秒
最大值:204 秒

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

19 个赞

试了试,的确是非常好的插件:+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。

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


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

是的插件没有bug,我误会了,抱歉。
作者很有耐心,更新速度很快,技术很好 :sparkling_heart:,插件 webdav sync v2.1版本已经很完美,推荐使用。

你好,我使用了,我要的就是这样的插件,能不能提个建议,加一个端到端加密呢,谢谢。

2 个赞

另外就是,能不能同步时可以把.obsidian这个文件夹也上传,现在的这个我试过了,跟坚果云一样,就算把规则添加了,也不能同步。

安装成功,连接检查也没问题的。但是同步失败

安装成功,连接检查也没问题的。但是同步失败,显示401

设置里排除规则:把".obsidian" 删了试试

401 是webdav服务器权限问题好像,和插件无关哦。你问问ai,把webdav服务器设置好

试过了,先排除,再添加,本质上就是fork,原来的坚果云插件,因为在原来的坚果云插件上我就试过不行。

我安卓手机和windows电脑,装这个插件 2.0、2.1、2.2三个版本,并且删除重装了很多次。
每次填上webdav服务器地址,账号,密码,都能用,没任何错误哦。

webdav sync 和 Remotely Save 这两个同步插件是没问题的。
我很早前在windows电脑上装webdav服务器,使用"Remotely Save"同步插件也遇到401或者404错误,就是访问权限配置,或者文件夹权限问题。问ai解决了。

你用的什么webdav服务器?

@minzihua @b09feng

回复如下:

  1. 401 错误通常由 WebDAV 服务商的速率限制引起。要消除此错误,请在设置中将 “速率与大文件设置” 下的 “最大并发 WebDAV 请求数” 调整为 1。
  2. 对 .obsidian 文件夹的同步支持将在 v2.3 版本中推出(编辑:已实现并发布)。
  3. 端到端加密 (E2E encryption) 是呼声最高的功能,其开发进度将追踪于 此 GitHub Issue(编辑:已实现并发布)。

建议阅读 中文 README,特别是最后三个部分,其中包含了关于开发进度和注意事项的重要信息。

请求数调整为1就可以了