同步方案总览#
用 obsidian 已经两年了,对于 Obsidian 的多端同步,我最终采用了如下的同步和备份方案
- 阿里云 OSS 进行同步
- Windows 定时任务压缩 Obsidian 目录到另一文件夹做备份
原因解释#
为什么采用这种方式呢?
之前我一直采用 OneDrive 同步 + GitHub 仓库的方式进行备份
OneDrive 同步不足#
但 onedrive 没有提供 webdav 服务(或者是我找不到),然后我用Koofr工具生成了 OneDrive 的 webdav 服务,这种方式并不好,因为Koofr的服务有时候不稳定,并且速度也不好,经常导致remotely-save插件同步失败(毕竟不是官方服务)。
GitHub 备份不足#
至于备份,我则是定期将 obsidian 整个库文件同步到 GitHub 仓库,其中包括我的 Obsidian 配置(当然是私人仓库哈),但是最近我发现我的备份目录越来越大(1.5GB),查看 Obsidian 库文件,只有 250MB,一看.git 文件,我的天,有 1GB 多,我也不是程序员,不敢乱删,如果保持现状下次迁移系统就要把整个目录拷贝过去才能做到无缝备份,而且我发现现在我 git push 好慢好慢(非网络问题)
备份真的超级超级重要,像笔记这种东西丢了真的要急死人,我在一次重装系统的时候就忘记备份我的笔记了,正在伤心之时,我突然想到:诶,我不是在 GitHub 上备份了整个 Obsidian 文件夹吗?直接 pull 下来,没有任何损失,笔记回来了,配置也一个没丢
方案实施#
阿里云 OSS 同步#
既然不用 OneDrive 同步,那么用其他网盘服务?我之前用过坚果云,同步体验也不是很好,不太稳定,且月流量只有 1GB,做笔记是够用了,但是我还有其他同步服务。综合当前的不足,最终决定采用阿里云(当然其他厂家也可以,如七牛云)OSS,购买了 3 年 40GB 27 元的标准资源包(对于这种经常需要读写的文件还是买标准资源包好),价格还是挺实惠的,40GB 足够记笔记用了,还可以用来搭建图床
阿里端需要进行的配置#
首先购买阿里云对象存储 oss 资源包,我买的是3 年 27 元 40GB 标准版套餐,可根据自己需求购买
购买完成之后进入控制台,点击左侧的Bucket列表
,创建一个 Bucket,随意命名,地域选择离自己最近的,其他的不用管
创建完成之后进入 Bucket,点击数据安全
里面的跨域设置
,创建一个规则,来源
填写
app://obsidian.md
capacitor://localhost
http://localhost
允许Methods
全部勾选 ,允许 Header
填写:* ,填写完成点击确定即可
接着需要授权一个用户来访问和管理 Bucket,点击阿里云右上角头像里面的AccessKey 管理
,如果显示这样点击开始使用子用户AccessKey
即可
接着我们会来到身份管理的用户管理界面,我们创建一个用户登录名称和显示名称随便写,这里我设置为和我创建的 Bucket 名称保持一致,便于辨认,访问方式记得勾选OpenAPI 调用访问
点击确定创建完成后会显示你的AccessKey ID
和 AccessKey Secret
,要复制下来,这个页面只会显示一次
接着我们回到 Bucket 页面点击权限控制
里面的Bucket 授权策略
,新增一个授权,为刚才创建的用户授权,授权用户
勾选子账号
,然后选择刚刚创建的用户,授权操作
勾选完全控制
,其他的不用管,点击确定即完成 Bucket 策略授权
Obsidian 端需要进行的配置#
这里我们还是采用的remotely-save插件,没有安装的朋友直接在社区插件市场搜索安装即可(需要代理工具)
remotely-save的远程服务我们选择S3 或兼容 S3的服务
,接着我们回到 Bucket 的管理界面,需要找到 Bucket 的服务地址(Endpoint)和区域(Region),点击 Bucket 的概览
,复制地域节点对应的信息,粘贴到 Obsidian,然后把刚刚创建用户时复制的AccessKey ID
和 AccessKey Secret
粘贴到对应位置,存储桶(Bucket)的名字填写你创建的 Bucket 的名称
如果你在同步过程中遇到因为 region 错误而导致无法访问到对应的存储桶,则可以将 region 更改为 ap-east-1,根据官方提供的文档,这个对应的是亚太地区的香港区域
到这里,同步部分已经配置完成了,先点击检查看一下是否能连通,如果能连通,就说明配置正确,你可以在remotely-save设置自动同步,我一般是设置每5分钟自动同步
和启动后第1秒自动同步
Windows 定时任务备份#
备份的问题刚刚也说了,.git 文件夹过大,网上说可以把.git 文件夹删掉,重开一个仓库,但是这样毕竟不能根治,还麻烦,而且 git 自身在国内备份速度也慢,现在弃用了这种方式,想了好久,我决定采用 Windows 定时任务,每天打开电脑的时候使用 Winrar 对 Obsidian 整个文件夹压缩后备份到 D:\Backups 这个目录(我的谷歌云盘同步了这个目录)具体步骤如下
win+R 后输入taskschd.msc
,回车,点击右侧的创建基本任务
,名称和描述随便填写,任务开始时间选择当前用户登陆时
,任务执行的操作就选择启动程序
,程序或脚本填写 WinRAR 程序的路径,可选参数填写
a -r -ep1 -ibck "参数1" "参数2"
如果你是 7zip 用户,程序或脚本填写 7zip 程序的路径,可选参数填写
a -r -bb1 -bd "参数1" "参数2"
参数 1 写将文件压缩为哪个路径下的什么文件,比如这里我写 D:\Backups\obsidian,就会将其压缩为 D:\Backups\ 路径下的 obsidian.rar 文件;如果是 7zip 则默认压缩为 obsidian.7z 文件,你也可以指定文件类型,直接将参数 1 改为 D:\Backups\obsidian.zip,这样就会被压缩为 zip 文件
参数 2 写你 Obsidian 库的文件夹地址即可
这样就大功告成了,我经常用 Google 云盘备份,因为它可以随意选择备份目录,速度也不错(当然需要代理),你也可以将参数 1 写为你 Onedrive 的路径(mac 则为 iCloud),这样就能自动备份到云盘
写在最后#
这里要说明一下,你购买了阿里云 OSS 的资源包,还要为上传下载流量付费,对象存储 OSS 资源包(包月)定价详情
所以记得为你的阿里云充值一些钱,对于笔记来说,流量一般不会用的很多,一年都不一定超过六块钱,但是欠费过久可能会被回收(会有欠费提醒,欠费额度一般为 10 元),所以保险起见,给你的阿里云账号充值 5 块钱比较好
付费带来的体验当然是质的提升,阿里云 OSS 同步速度真的太快了,太丝滑了
重要的东西都是需要采取 “三次备份” 原则,这里我们本地算一份,压缩后的文件算一份,云端的压缩包文件算一份,即采用了这种原则。无论什么时候
记得备份!!记得备份!!记得备份!!