# [Obcsapi v3] Obsidian 从本地到云端

> [[Obcsapi v3] Obsidian 从本地到云端](https://www.ftls.xyz/posts/obcsapi-fc-simple/)
> Penned by [恐咖兵糖](https://www.ftls.xyz/) on 2022-12-06


Obsidian 作为本地笔记软件，在使用了多端同步插件 remotely save插件情况下，我选 s3 同步。如果能够在微信测试号中，信息发送过去，然后存储到对象存储中。在 Obsidian 中一刷新就能看到了。于是就有了Obsidian S3 存储的后端 API

<!--more-->

## Obsidian S3 存储的后端 API
基于 Obsidian S3 存储的后端 API ,保存到 S3 存储的 Obsidian 库。支持列表

微信测试号 微信到Obsidian
支持简悦 SimpRead Webook
支持 fv悬浮球文字图片分享保存
静读天下 MoonReader 高亮标注 仿 ReadWise API
通用 http api

效果视频 【Obsidian 从本地到云端-哔哩哔哩】 https://b23.tv/uJFvw3A

{{< bilibili BV1Ad4y1s7EP 1 >}}

---
## 最简单部署使用方法 

### 使用阿里云函数计算 FC 部署

也是费用很低的一种方法，每月，也很方便。如出现较慢情况参考阿里云函数计算 FC 优化冷启动。

---
### 下载压缩包
打开 [https://gitee.com/kkbt/obsidian-csapi](https://gitee.com/kkbt/obsidian-csapi)

{{< image src="https://cdn.ftls.xyz/images/2022/12/20221206113058.png" caption="下载压缩包" >}}

---
### 下载压缩包
{{< image src="https://cdn.ftls.xyz/images/2022/12/20221206113200.png" caption="下载压缩包" >}}

---
### 创建配置文件
打开 [https://gitee.com/kkbt/obsidian-csapi/blob/master/config.ini](https://gitee.com/kkbt/obsidian-csapi/blob/master/config.ini) 页面。本地创建一个同名文件 config.ini ，复制内容到本地文件。 
{{< image src="https://cdn.ftls.xyz/images/2022/12/20221206113430.png" caption="修改配置文件" >}}

---
### 填写参数
根据 ini 配置文件的注释填写参数。主要填写

1. S3 部分中的 5 个参数。和 Obsidian Remotely Save S3 一样的。复制过来就可以了。
2. Flask 部分的3个参数。right_token，moonreader_token，simp_read_token。可以一样，但是需要自己随机生成。允许字符 `^!@$ a-z A-Z 0-9`。
3. WeChat 部分 。需要登录 [https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login](https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login)  相关说明 https://www.jianshu.com/p/a605b9286a55 。打开此页面获取 appID，appsecret 参数。Token 是自己设定的，需要自己随机生成。OpenId 是微信扫码关注此页面后，用户列表显示的微信号。

### 完成后保存文件，把 config.ini 拖动到 obsidian-csapi-v3.0.zip 里面覆盖掉。

---
### 打开函数计算 FC
提前注册好阿里云账户，打开阿里云函数计算 FC [https://www.aliyun.com/product/fc](https://www.aliyun.com/product/fc)。点击管理控制台。

{{< image src="https://cdn.ftls.xyz/images/2022/12/20221206114539.png" caption="打开阿里云函数计算" >}}

---
### 创建服务
然后创建一个服务

{{< image src="https://cdn.ftls.xyz/images/2022/12/20221206114750.png" caption="创建服务" >}}

---

### 创建函数 
{{< image src="https://cdn.ftls.xyz/images/2022/12/20221206114836.png" caption="创建函数" >}}

---

### 配置函数
{{< image src="https://cdn.ftls.xyz/images/2022/12/20221206115159.png" caption="配置函数" >}}

---
### 上传代码包 
然后拖拽或选择上传修改好的 obsidian-csapi-v3.0.zip 。
启动命令 python app.py
监听端口 9000

{{< image src="https://cdn.ftls.xyz/images/2022/12/20221206115657.png" caption="上传代码包" >}}

---
### 创建完成
{{< image src="https://cdn.ftls.xyz/images/2022/12/20221206115754.png" caption="创建完成" >}}

### 获取服务 url 
{{< image src="https://cdn.ftls.xyz/images/2022/12/20221206120205.png" caption="复制服务 URL" >}}

url 类似 https://flask-use-test-fkhbfuenab.cn-hangzhou.fcapp.run/ 。每个人都不同，需要记录下来。

---
### 测试部署成功 和 查看运行日志
浏览器进入 https://flask-use-test-fkhbfuenab.cn-hangzhou.fcapp.run/headers 。有下载文件，说明部署成功了。打开后应该按是 Auth Err 。
{{< image src="https://cdn.ftls.xyz/images/2022/12/20221206120701.png" caption="测试与日志" >}}
然后日志里能看到请求记录。

---
### 微信测试号完成配置
在微信公众号测试平台 - 接口配置修改处填写 Url . 格式 https://你自己url/api/wechat  
类似 https://flask-use-test-fkhbfuenab.cn-hangzhou.fcapp.run/api/wechat 
{{< image src="https://cdn.ftls.xyz/images/2022/12/20221206121123.png" caption="修改接口配置 URL" >}}

然后 Token 和 config.ini 的 WeChat 里的 Token 一致，能提交上就可以了。

以上步骤全完成后，即可在刚刚关注的微信测试号中发送信息，等待一会。在 Obsidian 中刷新一下，即可看到已经保存好了。

---
## 效果图

代码地址 https://gitee.com/kkbt/obsidian-csapi
说明： 图片分别为 微信测试号发送收藏的文章，或以http开头的链接。然后 obsidian 在日记中存储到样子和源码。文章生成的样子和源码。


{{< image src="https://cdn.ftls.xyz/images/2022/11/Snipaste_2022-11-21_12-40-35.png" caption="微信发送后效果" >}}

---

{{< image src="https://cdn.ftls.xyz/images/2022/11/Snipaste_2022-11-21_12-41-09.png" caption="源码" >}}

---

{{< image src="https://cdn.ftls.xyz/images/2022/11/Snipaste_2022-11-21_12-41-31.png" caption="微信裁剪抓取网页以 md 格式存储" >}}

---

{{< image src="https://cdn.ftls.xyz/images/2022/11/Snipaste_2022-11-21_12-41-51.png" caption="抓取网页后的源码" >}}

---

{{< image src="https://cdn.ftls.xyz/images/2022/11/微信图片_20221121124436_edit_25751770917423.jpg" caption="微信发送后效果" >}}

---
## 前端说明

微信测试号返回的信息中，点击 点击查看今日笔记 进入网站。按下齿轮，勾选 Debug。拉到页面下面，两个输入框，第一个是后端api。第二个是 token。api填写类似 api.ftls.xyz/ob ，不需要协议头和尾部斜杠。另外token将加入到和后端 api 的 headers 中 Token 字段。填写完成后，点击 updateConfig 按钮并刷新页面。按函数计算fc格式，第一个框如 https://xxxxx.cn-hangzhou.fcapp.run/ob ，第二个框 7$w8nA31OAoW@31^3!@$ (是 config.ini 中的 right_token)。
当然在前端不支持obsidian 链接。 

---
{{< image src="https://cdn.ftls.xyz/images/2022/11/Screenshot_20221206_135729_com.jpg" caption="前端效果" >}}

---
## 其他软件配置
fv 悬浮球 自定义任务
{{< image src="https://cdn.ftls.xyz/images/2022/11/Screenshot_20221206_144042_md.jpg" caption="fv 悬浮球配置自定义任务" >}}
效果
{{< image src="https://cdn.ftls.xyz/images/2022/11/Screenshot_20221206_144022_md.jpg" caption="fv 悬浮球效果" >}}

---
## SUM
本文完成了最简单的部署方式，起抛砖引玉之作用。望集思广益，完善优化使用流程。另外个人使用做多的是 ，fv 悬浮球，剪裁妙语或图片之类非常方便。
