【萌新教程】思源笔记使用七牛云 KODO 配置 S3 同步,超详细!

1. 写在前面

思源笔记是一款由国人开发的本地优先,支持双链、块级的开源笔记软件。

image.png

思源笔记采用 json 作为数据存储格式,编辑器兼容 MarkDown 语法且编辑体验极佳(堪比 Typora)。最重要的是,自带同步功能。是我目前使用过的所有笔记软件中,最适合个人多设备使用的笔记软件,既能简单的实现多设备同步,又能保证数据本地化,不受在线笔记产品会员资费、云服务宕机的困扰。

你可以在官网找到下载页面,也可以去 Github Release 中下载:https://b3log.org/siyuan/download.html

思源笔记基础版本提供了几乎所有笔记相关的功能,会员版本分为永久买断功能特性和年付订阅,详见价格页面:

  • 永久买断:在所有基础功能的基础上,提供 S3/WEBDAV 同步功能(需自行使用第三方服务)
  • 年付订阅:在永久买断的基础上,提供官方的同步功能(8GB 空间),且支持图床(可以将自己的图片上传至官方图床并在博客中引用)和剪藏、微信收集箱(通过微信公众号实时记录笔记并保存到思源笔记中)功能。
  • 注意,若年付订阅者想使用 S3/WEBDAV 同步功能,则需要保持按年付费,会员失效后无法使用 S3/WEBDAV 功能,若想永久使用这两个功能,也需要购买永久买断的功能特性。

如下图所示,付费版本和免费版本的区别只有同步功能是否可以使用,不会存在基础笔记共的限制。个人感觉目前 64 元买断的价格还是非常香的(之前早鸟付费是 48 元)。考虑到这里标了个原价 96,建议对思源笔记感兴趣,且使用后觉得确实不错的老哥趁早购买功能特性,不排除后续可能会恢复原价 96 的情况。

image.png

另外,除非你不太想折腾 S3 同步(本文就是教你怎么做的),个人其实不太建议购买年付订阅。一是提供的同步空间有点小(社区里不少用户反馈认为 8GB 太少了,虽然对于我来说是够用);二是 S3 的配置并不算麻烦,而官方提供的同步功能和 S3 同步基本没有体验差异。只要敢于尝试配置 S3,完全可以剩下这笔钱。

不过这里有个小提醒,不管是功能特性还是年付订阅均不支持退款,付款前请三思。

2. 什么是思源笔记的 S3/WEBDAV 同步?

2.1. 说明

思源笔记本身是一个本地的笔记软件,提供了端到端加密的 S3/WEBDAV 或官方提供的同步功能。当你安装思源笔记后,在默认的思源用户指南笔记本中,可以看到有一整个章节都是关于数据安全的描述:

  • 思源云端同步使用端到端加密,密码在本地通过内置密钥加密保存,除使用者之外的任何第三方均无法在云端获得明文数据。
  • 加密和解密过程完全在本地设备上进行
  • 加密算法为业界公认安全的 AES GCM;

端到端加密同步功能,简单来说,就是思源笔记使用一个密钥,先在你的电脑上将需要同步的笔记内容加密成密文,然后发送给云端。当这些数据在网络中开始流动时,它们已经是加密后的内容了,对于不知道密钥的其他人来说,这一堆数据和乱码没有区别。而在你需要同步的另外一台设备中,它会下载云端的加密内容,数据在流入这台设备之前也是一堆乱码,只能在你的设备中,通过相同的密钥才能正确还原出最初的笔记内容。

端到端加密功能,意味着除非你自己知道你的数据库密钥,否则即便别人获取到了你存放在云端的全量同步数据,也无法解密内容。这样一来也完全避免了云端服务商可能存在的扫盘而带来的隐私担忧。与之对应的是,如果你忘记了你的数据库密钥,且没有进行其他备份的话,那么任何人都没有办法解密你的云端笔记数据了。

思源提供 S3 和 WEBDAV 这两个不同的云端存储服务协议进行同步。其中 S3 协议的可靠性和稳定性远远优于 WEBDAV,除非特殊情况,否则百分百不推荐使用 WEBDAV 进行同步。

当你配置了 S3/WEBDAV 同步之后,只需要在其他设备上使用相同的同步配置以及数据库密钥,即可以实现多设备的同步。思源提供了三种同步选项,分别是完全手动、半自动(客户端开启和关闭的时候会自动同步一次,其余时间手动同步)、自动同步(停止修改后 30S 自动同步一次)。

这里推荐手机 APP 采用全手动模式,因为手机端界面按钮较小,极其容易误触导致意外修改一些内容,完全手动同步可以避免这些意外修改的内容被上传。电脑客户端根据您自己的需要选择半自动或全自动。另外,手机 APP 也可以在设置中配置为默认只读状态,这样可以避免修改笔记内容。

但需要注意的是,思源的加密仅限于同步到云端的数据,你的笔记在设备本地是明文存储的。也就是说,如果你的设备丢失,那么任何人都可以在设备本地的硬盘中读取到你的笔记明文内容。除非你对笔记所在文件夹使用其他软件或系统功能进行了加密,比如微软的 BitLocker。

作为一个本地优先的笔记软件,配置了同步后,即便没有网络,也丝毫不影响你浏览本地已有笔记内容(只不过会有一个无法同步的提示)。这一点对于我个人来说非常重要,我已经遇到过两次因为云端服务商产品协议更改或服务器访问波动导致我急需阅读笔记的时候无法阅读了。在那之后,我就把我所有的笔记内容全都转为纯本地了,包括笔记内的图片附件。

思源对大文本(超过 4W 字)的笔记支持也非常不错,毕竟是个本地笔记软件,性能基本取决于你的电脑配置。

我曾使用过语雀存放我计算机网络的笔记(大约 5.7W 字),语雀会直接卡到完全不能动弹,整个页面都卡死了。即便我过几天再上去打开那个文档,也依旧是这样。不过 flowus 对这种大文本支持也还算不错,不会卡死。但是 flowus 的免费用户直接限制了 200MB 存储空间也太抠了,我一个计算机网络笔记里面的图片和附件就不止这么多了。

咳咳,不跑题了,回到正文。

2.2. 思源的同步配置和工作空间

本文将以 2024-07-17 可下载到的最新思源版本 V3.1.1 做演示。

思源笔记以 工作空间 为基础,独立进行各类主题、设置、密钥、同步配置。工作空间就是你的电脑上的一个文件夹,在这个工作空间中产生的各类笔记本和附件,都会被存放到这个工作空间的文件夹中。每个工作空间之间相互独立,没有任何关联,也需要进行独立的同步配置,和 obisidian 的 vault 是同一个概念。

为了避免出现同步错误,每个工作空间不可共用 S3 的 bucket 或同一个 WEBDAV 的同步路径。正确配置方式是每一个工作空间独立使用一个 S3 同步的 bucket 或者 WEBDAV 同步目录。

另外,因为思源笔记经常会实时进行本地文件的索引,所以不能将思源笔记的工作空间文件夹选择放在坚果云、OneDrive 这类会进行实时同步的同步目录中,必须将思源的工作空间文件夹存放在一个和其他任何软件都没有任何关系的文件目录中。若想同步,请使用思源笔记自带的同步功能;若想备份,思源笔记的设置中有一个 导出-导出DATA 功能,这个功能会将整个工作空间的笔记和附件全量导出为一个压缩包,可以在另外一个设备上进行导入或上传至云盘进行备份。

在你初次打开思源笔记的界面下,也会有相关的提示。

image.png

选择工作空间文件夹的时候也会有提示,不能放在同步盘的路径中。如上文所述,在一个和其他任何软件都没有关系的独立文件夹中创建一个文件夹来存放思源笔记的工作空间,选中这个文件夹后,下方的弹窗点击确定就可以了。

这只是个每次都会出现的提示,并不代表你当前选中的文件夹有这些第三方同步盘配置。

image.png

2.3. 什么是 S3 协议?

S3 是一个对象存储的公共协议,目前国内主流的云服务厂商如阿里云、腾讯云、七牛云等等都会提供兼容 S3 协议的对象存储的服务。您可以选择任意一家您熟悉的支持对象存储的服务提供商来配置思源的 S3 同步,并不局限于本文举例的服务商。

如果您是第一次使用思源笔记,且没有接触过 S3 对象存储,个人推荐有免费额度的七牛云作为入门选择。我已经使用七牛云超过一年了,暂未遇到过收到影响的无法访问的情况,稳定性还是不错的。

几乎所有服务商的对象存储服务,都是分为两个计费项的:

  • 流量计费;
  • 存储空间计费;

存储空间计费比较好理解,就是为你存储空间占用的硬盘容量付钱。流量付费对于小白来说可能没有听说过,因为商用宽带是很贵的,所以云服务厂家为您提供服务时,需要收取带宽的流量费用。一般情况下来说,都是上传不计费,下载才计费。举个例子,您使用思源笔记,将本地的文件同步到 S3 时,使用的是 上传 宽带,这一部分是不计费的;而在另外一台设备上,将云端的内容同步到本地时,使用的是 下载,这一部分就需要计费了。

如果您的设备不多,这部分由同步产生的下载流量费用是不高的。以我个人举例,我使用的思源笔记目前存储空间只有 1GB,在七牛云产生的资费只有极低的外网流出流量的费用。

如下是 2024 年 6 月的账单,可以看到存储空间容量直接扣除了免费的额度,不用钱。

image.png

外网流出流量 2.68GB,扣费 0.77 元。

image.png

PUT/DELETE 和 GET 请求都没有超过免费额度,都不用钱。

image.png

3. 配置思源 S3 同步

3.1. 初始化数据仓库密钥

初次使用思源时,创建了一个工作空间后,要做的第一件事是在 设置-关于 中,初始化你的仓库密钥。思源会使用这个密钥进行端到端加密,密钥只有你当前使用的设备能知道。

image.png

点击自动生成密钥,这里会提示您如果在其他设备上已经有工作空间时,应该选择导入密钥。而我们当前是新建的一个工作空间,需要初始化密钥,点击确定即可。

image.png

密钥初始化完毕后,这里会显示复制密钥字符串,如果你需要在其他设备上同步这个工作空间的内容,可以在这里复制密钥,然后在另外一台设备上(比如手机 app 或者另外一台电脑)思源 app 设置的 设置-关于-数据仓库密钥 中,选择导入密钥。两台设备只有密钥一致,才能正确解密云端同步的数据。

image.png

3.2. 思源 S3 同步界面

思源的 S3 同步界面是在 右上角按钮-设置-云端 里面的,在使用同步功能之前,需要先在账户一栏登录你的思源账户(用于验证是否购买了订阅)。

image.png

登录了之后,云端选项就会开放,在下拉菜单中选择 S3 即可。

image.png

你可以先记住这里的几个配置条目,后文会一一说明它们的对应内容。

3.3. 配置七牛云 KODO

使用浏览器打开 七牛云 官网, 注册账户。

七牛云的 S3 对象存储服务名为 KODO,在它的定价页面,你可以看到七牛云提供了每月 10GB 的免费存储空间和 10GB 的 CDN 回源流量额度。对于思源笔记的用途而言,CDN 是用不上的,所以这个 10G 的 CDN 回源流量额度是用不到的。但 10GB 的存储空间额度可以用上了。至于后续的 PUT/DELETE 还有 GET 的免费额度可以不用管,基本是用不完的。

这里也说明了上传流量是免费的,符合前文关于 S3 计费项目的介绍。

image.png

另外,在这个页面也有一个价格计算器,你可以根据你的存储空间容量和设备数量来估计你最终会流出多少流量以及产生的资费。思源笔记的容量大小可以打开本地工作空间的文件夹查看内部 data 文件夹的占用空间。

image.png

每个月的外网流出流量(也就是你的同步下载流量)平均到每月大概是在笔记本容量的 1.5 倍左右。注意:这只是个我根据个人情况猜测出来的大概比例,不代表实际情况,只用于预估价格。

如下图所示,假设你有 10GB 的笔记容量空间,那么外网流出流量一个月可能会需要 15GB,那么每个月产生的资费是 4.35 元左右。这只是流出流量的费用,因为 10GB 的存储空间是免费的。

image.png

现在你已经了解定价啦,来看看怎么配置七牛云的 S3 同步吧。登录七牛云后,点击右上角账户旁边的控制台按钮,进入后台,点击产品与方案,选择对象存储 kodo。你可以在这里选择将其钉住,这样会直接显示在侧边栏上。

image.png

在对象存储栏目中,点击空间管理,点击新建空间,这会创建一个 bucket,也对应的思源 S3 同步中 bucket 一栏的填写项。

image.png

bucket 的名字根据你的喜好填写,建议填写辨识度高的名字,而不要填写一个诸如 siyuan 这类没有什么辨识度的名字。辨识度高的名字方便你后续创建更多 bucket 来对应其他思源工作空间或其他软件。

地域的选择采取就近原则,除非你人在国外,否则请不要选择非大陆地域。

访问控制选择私有,这代表只有拥有你的七牛云账户和相关密钥的软件可以访问这个 bucket,其他任何人都没有办法直接访问这个 bucket。

image.png

点击确定后,会弹出如下的提示。这里是很多新手朋友不太理解的一点,什么是测试域名?为什么有效期只有 30 天?实际上,这个域名是用于公开 bucket 的访问的,刚刚我们创建 bucket 的时候已经选择了私有,这个域名对于思源同步来说没有任何用处,也就不用管他的 30 天过期说明!直接点击 好的,我知道了 忽略这个提示即可!

image.png

现在我们已经创建了一个新的 bucket,点击它的名字,即可进入 bucket 的管理页面

image.png

在 bucket 的空间概览中,可以看到当前 bucket 的存储空间占用量,以及外网流出流量统计。我们需要记录的是右下角的这个存储空间域名。这个存储空间域名的格式如下所示

http(s)://siyuan-bucket-1.s3.cn-east-1.qiniucs.com
http(s)://<bucket名字>.s3.cn-east-1.qiniucs.com
http(s)://<bucket名字>.<协议>.cn-east-1.qiniucs.com
http(s)://<bucket名字>.<协议>.<区域名字>.qiniucs.com

image.png

回到思源的配置中,现在可以填写一部分内容了

  • Bucket:对应刚刚你创建的存储空间的名字,在我的示例中,是 siyuan-bucket-1;
  • Endpoint:填写域名中除了 bucket 名字以外的部分,即 https://s3.cn-east-1.qiniucs.com
  • Region:填写域名中显示的区域名字,即 cn-east-1

image.png

还剩下两个内容分别是 Access Key 和 Secret Key,正如它们的名字翻译过来的结果,这两个是访问你这个 bucket 的用户密钥,也是你的七牛云账户的密钥。这是你的私密信息,请一定不要将用户密钥发送给任何人或发送到论坛上

这两个密钥的获取位置是在七牛云界面的右上角,鼠标移动到你的用户头像位置,会弹出一个选择框,点击里面的密钥管理。

image.png

这里我已经创建过两组密钥了,我不记得新用户进到这个界面时是否会有一个创建密钥的提示了。总之你可以创建一组密钥,然后分别复制这里的 AK 和 SK,填写到思源笔记的 Access Key 和 Secret Key 中,同步配置就完成了!

如果你认为你的七牛云密钥已经泄漏,可以选择停用密钥,停用后删除这个密钥,再重新创建一个新密钥即可。

image.png

填写完毕后,点击下方的启用云端同步

image.png

在同步方式中,可以选择前文提到过的三种不同方式。对于电脑客户端而言,选择自动同步或者手动同步都是可以的;而对于手机 APP 而言,强烈推荐选择完全手动同步。

image.png

这里又会出现另外一个会让小白感到困扰的设置,在云端同步目录的设置中,你会发现你的七牛云账户里面的所有 bucket 都会显示出来。但是!刚刚在 S3 的同步配置中有一个 Bucket 填写项,我们使用的 Bucket 已经在填写项目中被固定了,所以这里的 bucket 选项是毫无意义的!它是留给 WEBDAV 协议选择文件路径使用的!使用了 S3 协议后,请忽略这个 云端同步目录 配置项。

正如前文提到过的,请针对每一个工作空间配置一个对应的 Bucket,请不要多个工作空间公用同一个 bucket!

image.png

现在我创建了一个测试笔记本,点击左上角的这个小云图标,即可进行同步操作。

顺带提一嘴,你可能会在文档树中看到 思源用户指南 这个笔记本,请不要在这个笔记中记录任何笔记!每次启动思源的时候,这个笔记本都会被重置!他是一个说明书,并不是一个可用的笔记本。一定要在文档树中 右键-新建笔记本 来做你的记录!

image.png

同步时,左下角会显示实时进度。

image.png

同步完毕后,我们可以来到七牛云的 bucket 的文件管理中,查看是否有新增的数据。如下图所示,刚刚我新建的 bucket 中已经出现了一个 repo 文件夹,且内部已有文件,这就代表你的同步配置完成啦!

image.png

这里的 repo 文件和本地工作空间路径中的 repo 文件夹内容是一致的,都是使用数据库密钥加密后的笔记内容。

image.png

如果你在确认了配置无误后始终出现网络问题导致同步失败,尝试将 S3 配置中的 Addressing 改为 path-style。如果还是不行,请在设置-关于中导出思源的日志,将日志和 S3 配置截图贴至论坛咨询。

3.4. 如何将同步配置导入其他设备?

注意:两台设备请保证思源的版本一致,数据仓库密钥一致,再进行同步。在你初次设置云端的思源客户端的设置中,选择 关于 - 数据仓库密钥 - 复制数据库密钥,然后在其他设备上的相同设置中 关于 - 数据库仓库密钥 - 导入数据库密钥 导入这个密钥,这样就保持了多设备密钥同步了。

个人建议所有设备都关闭思源客户端的自动更新功能,只要你使用当前版本没有遇到任何问题,建议维持版本,不进行更新。我现在还在使用 v2.11.4 老版本呢。

设置-云端 中,会有一个导入和导出的按钮,在这里可以快捷的导出你的云端配置,并在其他设备的云端设置中进行导入。

请注意区分 云端的导入/导出 和 设置中的导出 选项,设置-导出-导出DATA 是将你的全量笔记数据导出为一个压缩包,方便在其他设备上直接导入笔记或备份笔记。而 设置-云端-导出 则只是导出你的云端配置项目,方便在其他设备上直接引用相同的云端配置项而不需要重新填写而已!

注意:导出的压缩包是明文存储的,你的 AccessKey 和 SecretKey 都是明文。请在导入其他设备后,尽快删除压缩包,避免 AccessKey 和 SecretKey 泄漏!

image.png

在其他设备导入云端配置后,启用云端同步,将同步选项改为 完全手动同步,并手动点击小云图标,选择下载数据。等待云端的数据被下载完毕之后,再修改为其他同步方式。这样能最大限度的保障同步数据不出错!

image.png

image.png

另外,如果你尝试用 QQ 或微信的文件传输助手将这个云端同步压缩包发送给手机,需要注意的是 QQ 的文件传输助手收到的压缩包文件,没有办法在手机自带的文件管理器中被找到,也就没有办法导入思源 APP 中。建议使用数据线连接手机和电脑,将导出的云端同步配置压缩包传输到手机上。您还可以同时把导出的 DATA 压缩包也传至手机,先在手机 APP 中导入 DATA 和云端配置,再执行一次下载云端数据到本地,这样可以节省一部分流量费用。

4. 其他服务商的配置教程

这里给大家贴出其他服务商配置思源 S3 的教程。因为上文第三点已经带大家走过一遍配置流程了,其他云服务厂商的配置都是大同小异,所以这里就只贴出其他服务商如何找到思源 S3 所需配置项的条目,对应填入云端配置项中就 OK 啦。需要特别注意一点,不管您使用哪一个服务商,在开通对象存储服务的时候,一定要选标准的对象存储类型,不要选择低频访问、冷归档之类的对象存储类型!

这里再次对对象存储服务的资费做一个解释,毕竟这是初次接触这类云服务的小白最容易看不懂的东西。

阿里云 OSS 为例,你会看到阿里云 OSS 提供存储的资源包,如下图所示,40GB 的标准存储一年是费用是 9 元。这个 40GB 的资源包和七牛云提供的免费 10GB 存储容量一样,都是只抵消了存储空间的按量付费!即如果您使用阿里云 OSS,购买了这个 40GB 的资源包后,40GB 以内的存储空间都不会进行按量计费,只有超过 40GB 的空间才会需要按量计费。

image-20240719064441734

那么我们需不需要购买这个资费包呢?可以来算一笔账,看看按量付费要多少 GB 的存储空间才需要 9 元。根据阿里云 OSS 存储空间资费文档,标准本地冗余存储的按量付费的计算公式如下

按量付费:存储费用=存储量(GB)×月单价÷30(天)÷24(小时)

价格页面可以看到 OSS 的存储空间按量付费单价和外网流出流量的付费单价。

image-20240719065211076

根据 0.12元/GB/月,我们可以算出一年是 1.44元/GB,进一步计算 9 ÷ 1.44 = 6.25,得出结论,当你的存储空间容量低于 6.25GB 时,可以不用去购买 OSS 的存储空间资费包。如果您的思源笔记内容庞大,则在存储空间占用大于 6GB 的时候,就可以考虑购买 40GB 的资费包了!

顺带计算一下外网流出流量的价格,还是以上文提到的每月平均外网流出流量是占用存储空间的 1.5 倍计算,假设你有占用了 6GB 存储空间的笔记,那么每个月的外网流出流量预估是 9GB,直接按忙时价格计算,外网流出流量资费是 4.5元/月,同时还需 0.72元 的 6GB 月存储空间费用,合计 5.22元 每月。

对于阿里云 OSS 的新用户,您可以领取一次 20GB 存储空间和 2GB 外网流出流量/3 月的免费额度,这篇文档中还提到了一些地域的 OSS 会有每月 5GB 的标准存储和外网流出流量的免费额度,但根据思源论坛的反馈,中国香港地域和海外地域的 OSS 在大陆访问效果并不好,连通性差,不建议省这笔钱!

5. The end

到这里,云端的配置就大功告成啦!主要是如何找到对象存储服务地域节点的域名,以及用户的 AccessKey 和 SecretKey。这一部分操作都可以去查阅各大云服务厂商编写过的文档。想必聪明的你已经学会啦!

感谢大家支持!如果在配置过程中有任何问题,都可以在评论区与我交流。如果本文帮助到了你,也可以在评论区互动一下,这会让慕雪感觉自己的努力有收获,非常感谢!

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22337 引用 • 89377 回帖
  • S3
    6 引用 • 190 回帖
  • 同步
    28 引用 • 390 回帖
  • 教程
    143 引用 • 602 回帖 • 8 关注

相关帖子

优质回帖
  • muxue 1

    其实要看的是云端大小,因为思源在云端会保留全量快照,占用的空间会比本地的文件大。你直接去云服务后台看存储空间大小就行了。

    当然,在还没有购买 s3 服务之前预估大小,可以看自己本地工作空间下的 data 文件夹的大小。

  • muxue 1

    思源需要拉取云端数据库进行检查和验证,来确保本地和云端是同步的。这个期间会读取云端的文件,这就算是外网流出流量了。

  • 理论上会被覆盖,但可以在 主菜单 - 数据历史 - 数据快照 里回滚。并且要注意在回滚后找个笔记编辑一下再同步(不然同步的时候还会再次被覆盖)

    或者可以断网之后编辑一下 PC 的笔记,然后联网上传

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • tianxia704 1 评论

    大哥,神了,找了半天解决办法,你这里成功了。感谢

    有帮助就好 ,共建社区
    muxue
  • 其他回帖
  • muxue

    使用 win+r 输入 cmd 打开 windows 的命令行工具,输入 ping cn-north-1.qiniucs.com,看看是什么结果。大概率是 DNS 被劫持了解析不到七牛云 S3 的域名服务器地址导致的网络超时。

    1 回复
  • ryanlq

    非常感谢大佬的分享。

    我有问题想请教您:我 PC 端是实时同步的,在手机端是手动同步。假设 PC 端更新了不少笔记后,再打开手机端,点同步时不小心先按了上传(理论上应该先下载同步),那之前 PC 端更新的笔记会消失么?😂

    1 回复
  • muxue 1

    其实要看的是云端大小,因为思源在云端会保留全量快照,占用的空间会比本地的文件大。你直接去云服务后台看存储空间大小就行了。

    当然,在还没有购买 s3 服务之前预估大小,可以看自己本地工作空间下的 data 文件夹的大小。

  • 查看全部回帖