Obsidian + 阿里云OSS 支持云同步

6,645 阅读7分钟

前言

最近几天经常看到关于 Obsidian 的消息, 今天实际上手试了下, 暂时的使用上感觉挺顺滑的,但是有个问题就是, 免费用户无法使用同步功能, 而收费的话... 看了下价格,直接劝退T_T

所以便找了下相关教程, 看有没有其他的同步方法。

终于, 找到了 Obsidian 使用 Remotely Save + 阿里云 OSS 实现多平台同步 - 经验分享 - Obsidian 中文论坛 ,而此篇文章,则是我基于这篇教程实践时的详细步骤以及遇到的一些问题

如果说我看得比别人更远些,那是因为我站在巨人的肩膀上 - 牛顿

Obsidian

Obsidian是基于Markdown文件本地知识管理软件,并且开发者承诺Obsidian对于个人使用者永久免费

Pasted image 20221021170554.png

阿里云OSS

购买

进入 对象存储OSS资源包(包月) , 选择适合自己的套餐。作为笔记的话, 40G 完全是够用的, 其他的话, 则是套餐时常,现在(2022/10/21)价格 1年只需要9块钱。

Pasted image 20221021171613.png 所以我自己直接搞了个 【40G + 3年】 = 27 大洋!

而购买完成后, 直接开通 OSS

创建 Bucket

进入 OSS管理控制台 ,选择 创建 Bucket

Pasted image 20221021171908.png

紧接着,填写下 Bucket名称地域 ,名称不能重复,输入完成会有校验,自己注意一下就行。地域的话, 选择一个自己常居地的附近, 这样速度能快点。其他的则是默认就行, 完成后点击左下角 确定 来创建 Bucket

Pasted image 20221021172105.png

跨域设置

创建完后, 会进入 Bucket 概览页面。接着, 选择 权限管理 -> 跨域设置

Pasted image 20221021172546.png

跨域设置 页面 选择创建规则, 并在 来源 填入如下信息

app://obsidian.md
capacitor://localhost
http://localhost

允许Methods 全部勾选,支持所有请求

允许 Header 填入:*

Pasted image 20221021172826.png

点击确认 则完成了 跨域设置

授权设置

接下来, 是单独为这个笔记 bucket 创建一个子账号来管理资源, 对资源的 增删改查

鼠标移动到页面右上角, 在弹出的悬浮框中, 选择 AccessKey管理

Pasted image 20221021173622.png

点击后会打开新页面, 弹窗询问,选择 开始使用子用户 AccessKey

(这样如果出现安全问题, 可以直接把这个子用户删除掉

Pasted image 20221021173736.png

选择完毕后, 会进入新页面, 选择 创建用户

Pasted image 20221021173909.png

创建用户 页面,输入 登录名称显示名称 (我这里是写的自己的, 你们叫什么名你们自己定)。然后 勾选 OpenAPI调用访问,这个决定了我们这个账号具有 API 调用权限。

Pasted image 20221021211615.png

创建完成后, 页面会显示出 AccessKey IDAccessKey Secret 。记住这两个,页面关闭就无法再次获取了

Pasted image 20221021174947.png

接下来则是给新创建的用户分配资源管理权限

选择 权限管理 -> Bucket授权策略

Pasted image 20221021174353.png

点击 新增授权 ,在 新增授权 弹窗中, 授权用户 选择子账户, 并在后面选择框中选择刚才创建出来的子账户。

在权限操作中,选择 完全控制,如果是选择了 读/写 ,那么在本地删除了文件后, 无法删除 Bucket 里面的文件, 所以需要选择 完全控制

点击确定

Pasted image 20221021174524.png

至此, 阿里云OSS 的配置完成, 接下来开始 Obsidian 的配置

Obsidian 插件

安装 Remotely Save 插件

打开设置(win: ctrl + , mac: cmd + , 或者界面左下角 齿轮图标) 选择 第三方插件(Community Plugins),第一次打开需要你点及同意按钮, 知晓第三方插件的风险。

Pasted image 20221021175302.png

如果想修改界面语言, 可以点击 关于 (About) ,里面的 语言(Language) 后面的选择框中选择简体中文,Reluanch 就可以了。

回到正题

点击 浏览,打开插件市场界面, 输入框中 搜索 Remotely Save

Pasted image 20221021175840.png

点击这个卡片进去, 会出现插件的介绍,以及有一个 安装(Install) 按钮, 点击, 等待安装完毕

安装完毕后, 在此启动插件

Pasted image 20221021180121.png

开启后, 点击 下面这两个任意一个地方, 进行插件配置

配置 Remotely Save

Pasted image 20221021180216.png

插件配置页面,

远程服务 选择 S3或兼容S3的服务 服务地址(Endpoint)和 区域(Region) 这两个, 在上文创建的 Bucket 概览 页面

服务地址(Endpoint) 对应 外网访问 区域(Region) 对应 ESC 的经典网络访问(内网)

Pasted image 20221021180635.png

Access Key IDSecret Access Key 分别是在上文 阿里云OSS/授权设置 中创建子账号后, 自己记录下来的 AccessKey IDAccessKey Scret

存储桶(Bucket)的名字 :在上文 阿里云OSS/创建Bucket 中,自己创建 Bucket 填入的名称

Pasted image 20221021180311.png

配置完成, 检查可否连接

Pasted image 20221021182437.png

当提示如下时, 则Bucket 配置成功

Pasted image 20221021182528.png

至此, 插件的配置就算完成了

关闭弹窗, 你会在 Obsidian 左侧的菜单栏发现有一个刷新按钮。

点击刷新按钮, 则会主动将本地资源同步到 阿里云OSS 的Bucket 中

Pasted image 20221021181321.png

打开阿里云OSS Bucket 的 文件管理 , 会发现同步上去的文件

Pasted image 20221021181430.png

额外的功能

如果不想手动去同步, 可以配置一下自动同步, 会间隔指定的时间去跑同步逻辑

Pasted image 20221021182827.png

至于其他的, 就自己看插件配置来调了

OSS计费标准

因为我们买的只是一个存储服务, 包含了空间大小 和 使用时间。当我们正常使用时, 会产生上行流量(上传备份) 和下行流量(下载到本地)

所以我们要考虑一下这两种流量的费用 对象存储OSS资源包(包月)定价详情

Pasted image 20221021185041.png

上面表格中,可以得知,具体的收费项目和收费价格

再根据下面的表格

流量费用

Pasted image 20221021185335.png

中国(香港)、新加坡、马来西亚(吉隆坡)、印度尼西亚(雅加达)、菲律宾(马尼拉)、泰国(曼谷)、美国(弗吉尼亚)、美国(硅谷)、日本(东京)、韩国(首尔)、印度(孟买)

没有大陆,干!

总的来看, 如果你是在香港,每个月你可以有5G的免费公网流量。 如果在大陆, 那好像就是没有的...

如果我们以大陆为准, 来计算流量费用规则

首先是 上传,啊,上传是免费的。

对于下载,流量按最贵的时间段算,就是: 0.5元/G

有了单价, 接下来就看具体用量了。对于笔记来说,流量一般不会用的很多。以我今天的实践,到目前为止也只是消耗了 1.27M 公网下行流量(主要还是上传,而上传又是免费的。以及插件的同步算法,感谢插件作者!)

Pasted image 20221021190122.png

不过我今天的实践都是在单个设备上的操作, 如果我在其他设备上,把资源同步下来, 那么就会有对应的公网下行流量消耗了,不过这种新设备同步, 应该场景也不多, 不会每天都同步下来这么多资源。(不过也需要自己控制一下存在里面的一些附件体积, 比如图片,视频之类的, 不要搞太大的进去了)

最后整体来看的话, 正常使用, 下行流量每个月的使用应该不会超过1G, 对应的价格也是0.5元左右,再算上一年 12个月, 得出一年 6块钱的流量费。再加上 OSS 存储 40G一年 9块钱,算下来,一年15块钱。emmm, 也不算太贵

(另外你还能拿这些去搞自己的图床呀!!!)

!!!警告

  1. 留意插件的声明 Pasted image 20221021181610.png

  2. 插件留在 Bucket 中的 _remotely-save-metadata-on-remote.json 这个文件不要去动它。 这个文件记录了其他文件的 元数据, 会利用这个去做同步算法,决定资源的上传/下载逻辑 和 一些优化逻辑

鸣谢