Obsidian 云存储 后端服务

原 微信到 Obsidian 2.0 帖子
使用了多端 基于 Obsidian S3 存储或 CouchDb 的后端 API ,可借助 Obsidian 插件 Remotely-Save 插件,S3 方式,或者 Self-hosted LiveSync (ex:Obsidian-livesync) 插件 CouchDb 方式,保存消息到 Obsidian 库。特点

  • 微信测试号 微信到 Obsidian
  • 支持简悦 SimpRead Webook 裁剪网页文章
  • 支持 fv悬浮球文字图片分享保存
  • 静读天下 MoonReader 高亮标注 仿 ReadWise API
  • 通用 http api
  • 一个简易图床,附带命令行上传工具
  • 云函数 或者 Dokcer 部署
    文档

如果文档被浏览器缓存或者不是最新文档,可见 https://gitee.com/kkbt/obcsapi-go/tree/master/docs

说明,python 版本部署和效果 Obsidian 从本地到云端 - 超光速

旧代码 微信到 Obsidian 2.0 - 超光速
代码 Obsidian 云存储后端 API Go 版本: Obsidian Cloud Storage API 。基于 Obsidian S3 存储的后端 API。支持微信测试号发送消息,保存到s3。支持简悦 SimpRead Webook,支持 fv悬浮球文字图片分享保存, 支持静读天下高亮笔记api

两个版本:
Obsidian 云存储后端 API Go 版本
Obsidian S3 存储的后端 API python 版本

python go
体积 未压缩 100Mb+ 未压缩40Mb
FC函数计算内存 100Mb 上下 50Mb 上下
修改难度 简单2 比python复杂
微信公众号(测试号)3
微信文章裁剪 ×
简悦 SimpRead Webook
fv悬浮球文字图片分享保存
静读天下 MoonReader 高亮标注4
通用 http api
S3 对象存储
CouchDb ×
Web 网页支持 5
图床 和 CLI上传工具 ×
邮件发送登录链接 ×
公开文档功能 ×
邮件/微信任务提醒 ×
Docker <=3 >=4

Docker 3.0 之前的是 python 版本,之后的是 Go 版本。

1 个赞

代码仓库设置成私有了把?

确实是,gitee默认私有,忘记改了。现在应该好了。

真巧我之前也研究过微信发送到ob,以方便实现无感记录日记,原理也是开一个订阅号,往订阅号发送命令,被服务器上的python程序处理并且通过坚果云webdav增添或修改内容,不过感觉可能没多少人感兴趣就没发出来,而且因为懒没实现图片相关功能,正好可以参考大佬造的轮子。

1 个赞

图片处理倒是可以直接用腾讯返回的图片url。然后服务器闲时遍历daily note中源于腾讯图片,下载替换。

我写的程序对图片处理也很粗糙,没写异步,也没开多线程。图片过大,或连续发图都会触发微信重传。而且我这1M带宽服务器下载上传图片真要命啊,真是非常慢。

我想到一个方法解决服务器带宽问题。就是我上面说的遍历日志下载替换腾讯图片链接。不过这事儿可以放在家里电脑上,或者nas,树莓派上,每天开机时遍历下最近几天的日志下载上传图片。

或者服务器设置个定时任务,每天凌晨处理这事,应该也可。

这么一说werobot也可以内网穿透,运行在家里。

绕过带宽小的服务器直接在本地获取图片确实是个好办法,这部分程序可以丢到树莓派上运行,内网穿透之后就可以把代码写到一起了,也不用通过日志获取,直接程序内部变量传递就行,不过是两部分代码走不同网络,然后可以多线程下载图片就不会影响微信的输入了

我把daily note叫做日志来着。想每天定时通过读取笔记内容,匹配替换来着。

如果s3的spi支持链接下载到对象存储就好了。有些可以挂载s3开源网盘或许可以用api达到类似效果。

呃,实际上主要因为我对python多线程和异步还不太熟。。。

我把daily note叫做日志来着。想每天定时通过读取笔记内容,匹配替换来着。

如果s3的spi支持链接下载到对象存储就好了。有些可以挂载s3开源网盘或许可以用api达到类似效果。

呃,实际上主要因为我对python多线程和异步不熟。。。

噢噢,这样啊 :joy:,我一般管daily note叫日记,管日志叫log

翻译过来确实这样,不过我这之前不知道obsidian里叫daily note。
在使用obsidian之前就用工作日志log,网络日志blog这样的说法了,而且不怎么记狭义的日记。
因此我obsidian继承了日志log的说法和做法。。搞混了是我的锅 :melting_face:

我完善了一下,简化了部署。放到阿里云函数计算了。使用门槛应该已经很低了。

能在群晖部署么?必须在腾讯云上部署么?

可以的,相关文档在这里 Document for Obsidian Cloud Storage API 。可以直接 Docker 部署 python 版本,不过没什么使用的人,若有问题请给予反馈

我在群晖nas上部署了docker,微信公众号也配置好了。

需要在obsidian上下载插件remotely save么,这个一个同步软件,为了使用微信发送功能,就需要每次同步全库么?感觉有些得不偿失。如果需要使用,remeotely save插件,应该如何配置。

是的,因为 obsidian 笔记都存在本地,所以需要 remotely save 插件将文件同步到一些云服务上,这样 docker 内运行的程序才可以转发微信的文字到云端(对象存储桶内),然后借由同步,实现 obsidian 内保存内容 。

并且这个程序,是基于对象存储开发的,所以你需要做的事 搜索 obsidian remotely save s3 对象存储 相关内容。如 Obsidian 同步 Remotely Save S3 配置指南 - 超光速
这是基于腾讯云对象存储服务端,你可以在更多云服务商找到更多对象存储服务,只要他们支持 s3 接口。请注意如果没有新手半年或一年的免费额度,费用估算大约是双端1.5 Gb /元。

至于使用微信发送保存,remotely save 在正常工作的情况下,每次同步会比对云端(对象存储桶内的)文件和本地文件的修改日期,决定是否同步。所以如果使用该服务,每次同步只会同步当日日记那个文件;图片,抓取文章等等会多同步一个文件。

【Obsidian 从本地到云端-哔哩哔哩】 Obsidian 从本地到云端_哔哩哔哩_bilibili 这是相关教程,也包含演示。可以看到同步起来还是很快的,也不会整库同步。

感谢指导,我现在安装了 Self-hosted LiveSync插件,用于多设备实时同步,如果再安装remotely save同步本地文件,会不会产生冲突,相当于同时运行了两套同步软件。

我并没有尝试过同时运行多个同步插件,不过网上说法大概会冲突。你也可以试一试。
不过看起来这也是不错的同步方案,我有时间可能会一试

是的,这个插件同步速度很快,几乎在1秒内,就能同步到其他设备上。

你是用的 ibm Cloudant 还是 couchdb ?我今天试了下 couchdb ,和 remotely save 配合双重同步看起来可以工作。

我尝试使用调用 CouchDB 的 api 。写了两个可以存文字,存文件的函数。testgo/couchdb.py · 恐咖兵糖/Obsidian 云存储后端 API Go 版本 - Gitee.com
CouchDB python 版本的 api 参考资料是有一些的, go 版本就较少。但是并我不确定 CouchDB api 和 ibm cloudant 是不是通用的