用 Remotely Save 与腾讯云 COS 同步 Obsidian

用腾讯云 COS 对象存储作为云端中转站,配置 Obsidian Remotely Save 插件,在电脑与手机之间实现低成本的多端同步。

avatar for 二一二一
用 Remotely Save 与腾讯云 COS 同步 Obsidian

Remotely Save 是一款通过云端中转站实现多端同步的 Obsidian 插件。和开箱即用的官方 Obsidian Sync 相比,它需要自己准备一个云端存储空间。初次接触对象存储时,很容易被一堆专业名词和配置项绕晕。

这篇文章以腾讯云 COS 为例,演示从开通对象存储、创建存储桶、生成密钥,到电脑和手机双向连通的全部步骤。搞清楚这套中转逻辑之后,后续换用 Cloudflare R2、Backblaze B2 等其他兼容 S3 协议的对象存储,配置思路也是完全相通的。

对象存储作为同步中转的原理

本地的 Obsidian 笔记库在文件系统里就是一个普通文件夹。Remotely Save 的工作方式,是把这个文件夹里的文档和附件推送到云端中转站,另一台设备再从云端拉取更新,借此实现双向同步。

插件支持多种存储后端,常见类型包括

  • 兼容 S3 协议的对象存储,例如腾讯云 COS、Cloudflare R2、Backblaze B2
  • WebDAV 协议服务,例如自建 NAS、网盘 WebDAV
  • 主流网盘官方接口,例如 OneDrive

坚果云同步只推荐付费用户或文件规模较小的新库使用。免费版每月仅能上传 1GB、下载 3GB,WebDAV 接口每 30 分钟最多 600 次请求,付费版也只有 1500 次。多文件存量库一次性全量同步容易触发限流,出现 503 报错导致同步中断,即便付费也无法免除调用频次限制。

这篇文章先讲腾讯云 COS。其他平台的操作入口不同,但核心思路基本一致,先准备一个云端中转站,再把同一组连接信息填到各台设备的 Remotely Save 里。

安装 Remotely Save 插件

在需要同步的所有设备上打开 Obsidian,进入「设置」里的「第三方插件」。

关闭安全模式后进入社区插件市场,搜索 Remotely Save 并点击安装。如果不熟悉社区插件的开启方式,可以参考 Obsidian 最新全平台插件安装教程。

安装完成后点击「启用」。

启用后点击插件右侧的齿轮图标,进入 Remotely Save 的选项设置页面。

腾讯云 COS 配置步骤

腾讯云 COS(Cloud Object Storage)可以看作一个存放在云端的文件仓库。电脑端把笔记推送到仓库里,手机端再从仓库里拉取下来。

配置对象存储相比普通网盘,会多出账号注册、实名认证、建立存储桶与生成 API 密钥几个环节。这些属于一次性的基础设置,配置完成后不仅能给 Obsidian 做多端同步,后续如果想给笔记配个图床,也能复用这套存储空间。

文中截图里的存储桶名称、地域代码与密钥均为测试演示,实际配置时替换成自己腾讯云后台生成的真实内容即可。

注册账号与实名验证

打开腾讯云官网,点击右上角的「免费注册」。

按个人习惯选择注册方式,支持邮箱注册或微信扫码快速注册。

国内云服务在使用前都需要完成实名认证。

在账号中心点击「去实名认证」。

认证类型选择个人认证,点击「开始个人认证」。

按照页面指引填写个人身份信息,用微信扫码完成实名校验。

实名核验通过后,就可以正式开通对象存储服务了。

开通对象存储服务

进入腾讯云 COS 控制台。

第一次访问时会弹出开通提示,勾选同意服务协议,点击「确认开通并领取体验额度」。

开通完成后,页面会提示已发放免费存储额度,点击进入控制台管理页面。

赠送的免费容量包有固定使用期限,到期后会恢复正常计费,文章后半部分有详细的费用拆解。

在控制台总览页面,点击「创建存储桶」。

创建私有存储桶

存储桶就是云端存放文件的顶层目录,后续同步的所有笔记和附件都会放到这里。

弹出的创建表单里选项很多,实际需要修改的地方其实很少。

在基础配置区域依次设置几项关键参数

  • 名称,输入好辨认的英文字母,例如 obsidian-sync,创建时系统会在末尾自动追加一段数字账号后缀,后续填进插件时必须使用带后缀的完整名字
  • 所属地域,选择离自己物理距离较近的城市,国内通常选广州、上海或北京
  • 数据冗余策略,选择「单 AZ 存储」,个人笔记同步选单 AZ 足够,不需要成本更高的多 AZ 容灾
  • 访问权限,选择「私有读写」,个人笔记数据保持私密,避免被其他人直接通过公开链接访问

存储桶标签直接留空即可。

页面继续往下拉,进入高级配置区域。

这里的高级选项建议全部保持默认

  • 版本控制保持关闭,Remotely Save 插件本身就有同步与历史处理逻辑,云端开启版本控制会成倍增加空间占用
  • 服务端加密选择不加密,如果有严格的保密需求,直接在 Remotely Save 插件端开启端到端加密更安全
  • 极智压缩和日志存储都不勾选

确认无误后,点击左下角的「创建」按钮。

存储桶建好之后,页面通常会自动跳到域名与传输管理设置。

这些设置是给公网网站绑定独立域名或配置 CDN 加速用的,单纯做笔记同步完全不需要,点击左上角的返回箭头,回到存储桶列表。

在存储桶列表里,记下两个后续连接必需的参数

  • 完整的存储桶名称,例如带有数字后缀的 obsidian-sync-1432122122
  • 所属地域的英文代码,例如广州对应的 ap-guangzhou

这两项信息稍后在电脑和手机端配置插件时都需要用到。

生成访问密钥

存储桶建好之后,还需要为插件生成一组具备读写权限的访问凭证,也就是 API 密钥。

在腾讯云控制台右上角进入「API 密钥管理」。第一次进入时会弹出安全提醒,提示主账号密钥权限较大,勾选了解风险后点击「继续使用」。

接着系统会弹窗提示 SecretKey 只在创建时完整显示一次,后续无法在控制台再次查看。

勾选确认之后,点击「新建密钥」。

按照页面提示输入手机短信验证码完成身份核验。

核验通过后,屏幕上会完整给出生成的 SecretId 与 SecretKey。

当场把这两串字符复制保存好,或者点击下载 CSV 文件存入本地密码管理器。一旦关闭这个窗口,后面就无法再次查看到完整的 SecretKey 了。

到这里,腾讯云侧需要的 4 项核心连接参数已经全部就绪

  • Bucket,带数字后缀的完整存储桶名称
  • Region,存储桶所在的地域英文代码
  • Access Key ID,对应生成的 SecretId
  • Secret Access Key,对应生成的 SecretKey

配置电脑端 Remotely Save

回到电脑端的 Obsidian,打开 Remotely Save 的插件设置页面。

在「选择远程服务」下拉框中,选择「S3 或兼容 S3 的服务」。

选项展开后会看到一组 S3 连接参数,把刚才在腾讯云拿到的信息逐一对应填入。

各项参数的填写内容如下

  • 服务地址 Endpoint,标准格式为 https://cos.地域代码.myqcloud.com,例如广州地域对应 https://cos.ap-guangzhou.myqcloud.com
  • 区域 Region,填写存储桶所在的地域英文代码,例如 ap-guangzhou
  • Access Key ID,填入腾讯云生成的 SecretId
  • Secret Access Key,填入腾讯云生成的 SecretKey
  • 存储桶 Bucket 的名字,填入带数字后缀的完整存储桶名称

下方的进阶选项保持默认即可

  • S3 URL style 保持 Virtual Hosted-Style
  • 分块并行度保持 20
  • 使用准确的文件修改时间保持关闭
  • 远端前缀路径与反向代理地址均留空

填好全部信息后,往下拉找到「检查可否连接」,点击右边的检查按钮。

右上角弹出「很好!可以访问到对应存储桶。」的提示,说明电脑端已经和云端存储桶连通通畅。

电脑端同步测试与自动同步

连通测试通过后,先新建一篇测试文档验证上传效果。

在当前笔记库里新建一篇叫作 同步测试 的 Markdown 笔记,点击左侧边栏上的 Remotely Save 同步图标。

插件开始比对本地与云端文件,右上角会依次弹出开始同步与同步完成的提示。

打开腾讯云 COS 控制台,进入该存储桶的「文件列表」核验。

在列表里能看到刚刚上传的 同步测试.md,说明电脑端已经把文件写入云端。

确认上传正常后,回到插件设置的常规选项,配置日常的自动同步行为。

日常使用可以参考这套配置

  • 自动运行,电脑端可以设为每 5 分钟或 10 分钟自动同步一次,降低不必要的空转请求
  • 启动后自动运行一次,勾选开启,每次打开 Obsidian 时自动拉取云端最新文件
  • 保存时同步,勾选开启,笔记修改保存后在后台触发同步
  • 状态栏显示同步时间,勾选开启,在界面底部随时直观查看最近同步状态

手机端拉取同步内容

电脑端上传无误后,打开手机配置移动端拉取数据。

在手机上初次配置时,先新建一个空白库专门用来测试拉取,不要直接拿存有大量复杂内容的旧库开刀,这样排查问题最省心。

打开手机端 Obsidian,点击「创建空仓库」。

在同步方式提示里,选择「第三方同步」继续创建。

输入仓库名称,存储位置选择「设备存储」。如果在 Android 设备上操作,按系统弹窗给 Obsidian 授予文件夹读写权限。

进入新建的空白笔记库,打开设置,进入「第三方插件」。

关掉安全模式,在社区插件市场里搜索 Remotely Save。

安装并启用插件后,进入插件设置页面,填入和电脑端完全一致的连接信息。

完整填好 Endpoint、Region、Access Key ID、Secret Access Key 和 Bucket 名称后,点击下方的检查按钮测试连接。

手机端受系统后台休眠和移动网络切换影响,自动同步间隔不建议设得太短,日常设为每 10 分钟自动同步一次,或者主要靠手动点击触发。

配置完成后返回笔记主界面,从屏幕顶部往下滑动唤出命令面板,搜索 Remotely Save: 开始同步 手动触发第一次拉取。

同步完成后,在手机文件列表里就能看到刚刚在电脑端创建的 同步测试 笔记,说明电脑与手机之间的双向同步已经彻底打通。

如果笔记库同时在使用 FLO.W Core 而且开启了配置文件夹同步,新设备初次拉取完毕后,先退出受限模式并手动启用 FLO.W Core,然后再同步一次。新设备初次同步可能携带尚未初始化的空插件清单,连带停用了其他设备上的插件。遇到这种情况不用慌,直接在对应设备的设置页面重新打开插件即可。

费用构成与额度周期

腾讯云 COS 的免费额度有期限,把它的计费账目算明白,用起来心里才踏实。

新用户第一次开通服务后,通常会获得为期 6 个月(180 天)的 50GB 标准存储容量包。这项额度主要用来抵扣云端空间占用,每次同步产生的 API 请求次数与手机从云端下载产生的外网下行流量,仍然会单独按量计费。

免费额度到期后,主要有两种处理方式

  • 继续使用,直接转为按量计费或按需购买低面额资源包,个人纯文字笔记占用的空间很小,按量扣费每月通常在几毛钱到几块钱之间
  • 停用迁移,后续如果换了其他同步方式,记得把云端存储桶里的文件清空并彻底删除存储桶,同时把 API 密钥停用,避免后台持续产生静态存储计费

对象存储的实际花费主要由三部分构成

  • 存储容量费,按存放在云端的文件总大小按天折算扣除
  • 外网下行流量费,电脑向云端上传数据通常免费,但手机或平板从云端下载笔记时会产生外网下行流量
  • API 请求次数费,Remotely Save 每次比对文件、读取和写入文件,都会向云端发起 API 请求,按调用次数计费

普通个人笔记的实际花费参考

  • 纯文字 Markdown 笔记为主,每月花费通常在 1 元以内
  • 包含少量日常配图和截图,每月花费通常在 1 到 5 元之间
  • 包含大量高分辨率无损原图、音视频素材,或者多台设备频繁全量同步,花费会随着流量上升

建议在腾讯云控制台里顺手开启余额预警和账单通知,充十块钱就能用很长时间,自己心里也有数。刚开始配置时,先拿一个测试空库跑顺整套流程,确认手机和电脑都能正常双向同步了,再把主力笔记库放进来。