根据自己的一些需求,写了几个常用的同步功能:
- 在 Obsidian 中粘贴图片时,插件会自动将图片上传到指定的对象存储,并更新图片链接
- 支持将以插入的本地图片链接转换为图床地址
效果大致为:
![[xxx.png]] --> ![[xxx.png]](https://xxxx.xxx.os/xxx.png) - 手动对比冲突选择正确版本
- 上传 PDF 等大文件到对象存储
原则上数据库中只保存文本文件,便于灵活修改;大文件在数据库中只存储 hash 值,通过对比 hash 来确定同名文件是否发生变动。
- 本地图片自动上传图床:在编辑笔记时,自动将本地图片上传到图床,并更新图片链接。
- 冲突解决:当笔记在多个设备上编辑时,支持手动对比冲突,选择正确的版本。
- 大文件上传:支持将 PDF 等大文件上传到对象存储,避免占用数据库空间。
| MongoDB | CouchDB | |
|---|---|---|
| PC 端同步 | √ | √ |
| 支持移动端 | × | √ |
| 腾讯云 | 阿里云 | |
|---|---|---|
| 是否脱离数据库 | × | × |
| 保存多种数据格式 | √ | × |
| 支持本地图片 自动部署到图床 |
√ |
× |
cos-js-sdk-v5crypto-jsdiffmongodbpouchdbsweetalert2
- 克隆此仓库到本地。
git clone https://github.com/ketd/obsidian-sync-DB-OS.git
- 进入项目目录。
cd obsidian-sync-DB-OS - 安装依赖。
npm install
- 根据需要配置
settings。 - 运行插件。
-
本地图片上传:
- 在 Obsidian 中粘贴图片时,插件会自动将图片上传到指定的对象存储,并更新图片链接。
-
冲突解决:
- 当检测到笔记在多个设备上有冲突时,会弹出对比窗口,用户可以手动选择正确的版本。
-
大文件上传:
- 支持将大文件(如 PDF)上传到对象存储,并在数据库中保存文件的 hash 值,通过 hash 值来检测文件变动。
欢迎提交 issue 或 pull request 来帮助我们改进这个项目。

