工具 · 2023/10/30 0

Obsidian 多端同步方案及R2图床

1. 工具选择

Obsidian有很多同步方法,列出一部分:

同步工具 类别 即时同步 定期同步 版本记录 存储 价格
sync 官方同步 10GB $96/年
Remotely Save插件 ob插件 对接第三方 Free
LiveSync 插件 ob插件 自建 Free
Git 插件 ob插件 对接第三方 Free
Onedrive 软件 免费层5GB Free
iCloud 软件 免费层5GB Free
resilio sync 软件 自建 Free

我最终选择的是 Remotely Save插件,在 obsidian 打开后自动同步一次,然后每5分钟或10分钟自动同步修改内容。官方的 Sync 或 LiveSync插件可以在内容有修改时立即同步,有一定成本。Onedrive、resilio 等依赖第三方软件,我希望在 obsidian 内解决同步需求。

接下来需要选择 Remotely Save 对接的第三方存储服务。

2. Remotely Save 存储服务选择

Remotely Save 支持:

  • S3 或兼容S3的服务
  • Dropbox
  • Webdav
  • Onedrive个人版
  • webdis

我会按 Dropbox和Onedrive→Webdav→S3 的顺序描述,并提及一些服务商。

2.1 Dropbox 或 Onedrive

选择后点鉴权,会跳转到网页授权,然后就能同步了,适合能稳定访问服务的使用环境。Onedrive 提供 5GB免费存储容量,笔记够用。如果笔记中有大量图片、视频内容,Office365家庭版拼车(¥20-50/年)后提供 1TB 容量,便宜大碗。

2.2 WebDav

WebDav 是非常简单、使用广泛的协议,服务商非常多。选择后填入服务商提供的地址、用户名、密码就能同步了。

推荐日本老牌服务商 infinicloud,免费层提供 20GB存储,没有速度或调用频率限制。(邀请码 92J2C,被邀请方永久+5GB)

先注册帐号,注册后打开 My Page 页面, 在 Apps Connection 处生成 Password,就有了服务器地址、用户名、密码。

需要注意的是,Remotely Save 虽然提示会创建文件夹,但 infinicloud 限制了在根目录下创建文件夹的权限,因此你需要先进入 infinicloud 的 File Browser,手动创建这个文件夹。

然后填入服务器地址、用户名、密码就能同步了。

在基本设置中,设置密码会将文件加密后再同步到存储服务。自动运行最频繁可以每 1 分钟同步一次,可以设置文件编辑后立即同步。往下滑动可以选择是否同步配置文件夹(包括插件)等选项。

2.3 Cloudflare R2

Cloudflare R2 是兼容 S3 的对象存储,免费层提供 10GB 存储容量,官方价格中涉及同步的内容如下:

项目 免费层 付费层
存储 10GB/月 $0.015 / GB-month
A类操作(写入) 100万次/月 $4.50 / million requests
B类操作(读取) 1000万次/月 $0.36 / million requests

个人使用一般不会超过免费层额度,超额后费用低廉,20GB存储约 ¥10/年,100GB存储约 ¥110/年,适合偏好按量付费的用户,R2 也可以当图床、文件分享工具用。

1. 注册 Cloudflare

cloudflare 注册时需要科学,使用不需要。右上角可以切换语言。

2. 新建存储桶得到 S3 API

登录账户后在左侧选择「R2」,然后选择新建存储桶,填写名称,位置自动,创建存储桶。

点开新存储桶的设置选项卡,你就得到了 S3 API。

在这个界面往下滑动可以看到「自定义域」、「R2.dev子域」配置。

例如自动分配的 R2.dev 存储桶URL 是 https://pub-10086sb.r2.dev,先打开R2.dev配置的「允许访问」,在对象选项卡上传 img1.jpg,外链就是 https://pub-10086sb.r2.dev/img1.jpg 。可以上传非空文件夹,外链要带上路径,如 https://pub-10086sb.r2.dev/文件夹1/img1.jpg

注意: R2 存储在超过免费层后会按量收费,可能会有坏蛋刷你的额度给你制造大额账单,不建议公开你的存储桶URL链接。

3. 创建令牌

回到R2管理界面,新建API令牌。

起名,权限设置「管理员读和写」。(网友反馈「对象读和写」有些操作会出错)

TTL选择「永久」,客户端IP地址筛选不填,点击创建API令牌。

你就得到了只显示一次的 Access Key ID 和 Secret Access Key,如果没记住,可以新建一个。

4. 在 Obsidian 中设置S3同步

回到 Obsidian 插件界面,Remotely Save 远程服务选择「S3或兼容S3的服务」,回顾上面的过程,Endpoint、Access Key ID、Secret Access Key、存储桶名称我们都有了。

区域默认 us-east-1,其他选项默认或按你的使用习惯,填好后测试。不同设备端的配置是一样的。

设定密码后文件会被加密,在R2对象界面显示为字母和数字组成文件名的无格式文件。建议跳过大文件选择10MB或50MB,据说 Remotely Save 同步>50MB的文件可能失败。可以通过文件名或文件夹以_开头控制是否同步,可以同步配置。

每个Obsidian库需要建立独立的存储桶。

3. 其他存储服务商

  • Yandex Disk:俄罗斯服务商,支持 webdav,免费层提供 10GB存储( 启用WebDAV的位置id.yandex.com);
  • koofr:欧洲服务商,支持 webdav,免费层初始 2GB存储,引荐4人后提高至10GB。支持连接 Onedrive、Google Drive、Dropbox,被连接的服务也可以通过 WebDAV 访问(WebDAV默认地址https://app.koofr.net/dav/Koofr);
  • 阿里云 OSS:S3存储,最低 9元/年提供40GB存储空间,流量、API 各类操作会产生额外费用。
  • 坚果云(不建议):支持webdav但限制较多,api限制500次/30分钟,单次请求文件数按750分页加载,容易报错;
  • Backblaze(不建议):兼容S3,免费层存储 10GB,读操作只给 3000次/天,容易超额产生账单;

注:尝试不同服务商前,请备份好自己的 Obsidian库。我长期使用 Onedrive、Cloudflare R2、Infinicloud,确定这三个服务是可用并稳定的。以上列出的服务商仅试用过,并且文章写于 2023年11月,服务商的规则可能会发生变化。

4. Remotely Save的缺点

截止 2023年11月 网友反馈的问题:

  • 不能同步大文件,单文件>30M会闪退
  • 会丢失笔记真实的最后修改时间,变为最后一次上传到远端存储的时间
  • 対笔记文件的删除、修改或重命名操作,不能在存储方案中直接修改,只能在Obsidian里完成,否则在同步时出错(Remotely Save云端的json不会记录这些操作,产生冲突)

简单讲,就是适合在 Obsidian 中编辑文件的用户,可能不适合用其他工具编辑文件的用户。