不使用第三方软件实现Obsidian多平台实时同步

经过多次踩坑,最后也找到了使用WebDav的方法。

fyears/remotely-save (github.com)

配合 go-webdav。下面给出一下我的配置文件。具体咋用可以直接看github README.md就可以了。(有手就行~

address: 0.0.0.0
port: 30001 # webdav listening port
auth: true
tls: false
cert: cert.pem
key: key.pem
prefix: /

# Default user settings (will be merged)
scope: .
modify: true
rules: []

# CORS configuration
cors:
  enabled: true
  credentials: true
  allowed_headers:
    - Authorization
    - Origin
    - X-Requested-With
    - Content-Type
    - Accept
    - DNT
    - X-CustomHeader
    - Keep-Alive,User-Agent
    - X-Requested-With
    - If-Modified-Since,Cache-Control
    - Content-Range
    - Range
    - Depth
    - Content-Length
  allowed_hosts:
    - app://obsidian.md
  allowed_methods:
    - GET
    - HEAD
    - POST
    - PUT
    - OPTIONS
    - MOVE
    - DELETE
    - COPY
    - LOCK
    - UNLOCK  
    - PROPFIND
    - MKCOL
  exposed_headers:
    - Content-Length
    - Content-Range


users:
  - username: user1
    password: password1
    scope: /data/obsidian
  - username: user2
    password: password2
    scope: /data/zotero

然后再Obsidian里面安装插件,然后进行配置。

1 个赞

之前试过这个插件。但是不知道为什么 连不上群晖的NAS 上的 WebDav Server 后来呢接触了这个。就没折腾了。

那就是我说的踩坑问题了,主要是作者,针对同源策略这个地方写的点问题。

而且群晖的WebDav没测试过,可以通过 ctrl+shift+i 调出开发者面板调试一下。

但是总体思路只能尝试 webdav去迁就这个插件。

找到问题了群晖的 WebDav 禁用了CORS 。目前似乎无解。只能群晖里再用docker开个 WebDav 服务

remotely-save 可以使用对象存储来同步,但没有自动同步有点麻烦,也没有同步的快捷键

使用阿里云轻量应用服务器成功同步,几个点需要注意:

  • 一开始使用宝塔面板的docker管理器安装couchdb,绑定域名添加反向代理都正常,数据库的操作面板正常,但是ob插件端无法连接服务器。使用原作者提供的方式命令行重装则成功了
  • 建议不同vault保管箱存在不同的数据库中,一个vault对应一个database
  • 如插件开发者所说,这是同步插件而非备份插件,云端的文件不是直接以md格式存储的,不能直接在服务器端进行修改操作。可以配合坚果云同步PC端文件进行更改。
  • 另外也不要同时使用多个平台上打开同步功能的ob,会跳出错误警告
1 个赞

我是用移动云平台的对象存储进行同步,存储的是.md格式,但配置文件是隐藏文件夹所以无法同步,另外感觉删除同步还是有点问题,有时候在A设备删除了的文件,B设备同步,会把B设备上已经删除的文件同步到云端,

还真是,
①我在A设备删除文件,然后在A同步,云端存储桶标记该文件为删除
②在B设备不删除该文件并进行同步,然后云端会再次把该文件重新上传
emmm,人麻了

GitHub上作者说:

"deletion" operation can only be triggered from local device. It’s because of the “minimal intrusive design”. May be changed in the future.

希望以后能改进吧,那这样删除文件就有点麻烦了。

如果要删除某个文件,那就得在每个本地设备手动删除该文件……这也太难受了

是的,感觉这个插件潜力很大

我都想换这个livesync了,但是我没有域名……

不知道.xyx域名可不可以,之前腾讯云做活动撸了个10年的

最好不要用插件作者给的docker 创建方式。因为这个方式它的数据库文件是默认存在docker 里面的,没有放在外面做持久化。你docker 重启或者服务器重启之后,数据就没有了。

随便买一个呗,最便宜的几块钱一年。

随便都行,只要是域名就行。不过国内的话,可能有的时候还需要备案。

谢谢提醒,不过电脑平板加坚果云备份,这个插件主要就用来同步

已经买了,想问下我现在有个域名和国内的云服务器(都在阿里云买的),然后我可不可以不备案来实现https访问?

国内的不行。必须备案。如果有香港,或者国外的可以不备案

好的,多谢了。我得等两天才能备案

请教一下,如果用云服务器,创建配置文件的路径是什么?