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

还需要解释的一点是,假设您的某个工作空间A只在设备B上存在,并配置了S3同步。此时虽然没有第二个设备去访问这个S3存储桶进行下载同步操作,但实际上你的当前设备B也会需要去访问云端空间,下载数据库进行与本地的对比和验证操作的,这样思源才能知道本地的工作空间A已经成功同步到S3的bucket中了。所以即便您的工作空间只存在于B设备上,但依旧会产生少许的外网流出流量

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的存储空间是免费的,只有超出10GB存储空间的免费额度,才需要对存储空间进行按量计费

image.png

现在你已经了解定价啦,建议给七牛云充值5元,避免超出免费额度的扣费导致服务终止。

接下来,看看怎么配置七牛云的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的存储空间占用量,以及外网流出流量统计。我们需要记录的是右下角的这个存储空间域名。这个存储空间域名的格式如下所示

1
2
3
4
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,开头是https://,不能带括号;
  • 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,思源不支持多个工作空间共用同一个S3 Bucket!

image.png

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

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

image.png

同步时,左下角会显示实时进度,同步完成后会显示已经同步。

image.png

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

image.png

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

image.png

如果你使用七牛云进行S3同步总是遇到网络问题,且确认了自己的S3配置项没有填写错误,可以尝试将Addressing选项的Virtual-hosted-style改成Path-style后重试。

image.png

如果修改后还是无效,请在设置-关于-导出系统日志选项中导出思源的日志,在链滴论坛发帖求助,记得在咨询贴中贴出日志附件。

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)×月单价
$$
价格页面可以看到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。这一部分操作都可以去查阅各大云服务厂商编写过的文档。想必聪明的你已经学会啦!

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