我写了个 Obsidian 插件,自动上传图片到 Cloudflare R2

我写了个 Obsidian 插件,自动上传图片到 Cloudflare R2
miu我写了个 Obsidian 插件,自动上传图片到 Cloudflare R2
前言
最近在 X 上看到一个帖子特别火,教怎么把图片上传到云存储:
说的是用 Cloudflare R2 做图片存储。R2 的优势很明显——免费额度大(每月 10GB 存储、100 万次读取),用来存笔记图片绑绰有余。
但我查了一下 Obsidian 社区现有的方案,都有些不足:
- obsidian-cloudflare-plugin:不能等待图片压缩完成后再上传,如果你用了 image converter 之类的压缩插件,上传的还是原图。
- custom image auto upload:依赖 PicList 等外部桌面软件,配置链路太长。
所以我自己用 AI 辅助开发了一个专门针对 R2 的上传插件。插件地址
插件功能
核心功能三个:
- 自动上传到 R2:粘贴/拖拽图片后自动上传,自动替换为远程链接
- 等待压缩完成:检测图片是否正在被其他插件(如 image converter)压缩,压缩完成后才上传
- 自动清理本地文件:上传成功后自动删除本地图片副本
配合 image converter 使用效果最佳。
Cloudflare R2 配置教程
以下教程参考了 alin_zone 的分享。
Step 1:注册 Cloudflare
打开 https://dash.cloudflare.com/sign-up,邮箱注册即可。
Step 2:进入 R2 并绑定支付方式
登录后,左侧菜单找到「R2 对象存储」。
第一次使用需要绑定支付方式(Visa / MasterCard / PayPal),绑定不会扣费,免费额度内无任何费用。
Step 3:创建存储桶
点击「创建存储桶」:
| 配置项 | 值 |
|---|---|
| 名称 | 随意,如 obsidian-img |
| 位置 | 选「自动」 |
| 存储类型 | 必须选「标准」(只有标准类型享受免费额度) |
创建完成:
Step 4:开启公开访问
进入存储桶 → 设置 → 找到「公共开发 URL」 → 点击「启用」。
不开启的话,图片链接外部无法访问。
Step 5:创建 API 令牌
回到 R2 首页,找到右下角 Manage R2 API Tokens,点进去 → 创建 Account API 令牌。
需要填写:
| 配置项 | 值 |
|---|---|
| 令牌名称 | 如 R2ObsidianToken |
| 权限 | 对象读和写 |
| 指定存储桶 | 选择刚创建的桶 |
| TTL | 永久 |
创建后会得到三个关键信息:
| 信息 | 说明 |
|---|---|
| Access Key ID | 访问密钥 ID(相当于用户名) |
| Secret Access Key | 机密访问密钥(相当于密码) |
| Endpoint | 终结点,格式类似 https://xxxxxx.r2.cloudflarestorage.com |
⚠️ 这三个信息只显示一次! 务必立刻复制保存。
Step 6:配置插件
将上述三个信息填入 Obsidian 插件设置中:
搞定。
总结
| 特性 | 本插件 | obsidian-cloudflare-plugin | custom image auto upload |
|---|---|---|---|
| 上传到 R2 | ✅ | ✅ | ✅(需要 PicList) |
| 等待压缩完成 | ✅ | ❌ | ❌ |
| 无外部依赖 | ✅ | ✅ | ❌ |
| 自动删除本地文件 | ✅ | ❌ | ❌ |
Cloudflare R2 免费额度对个人笔记图片存储来说完全够用,配合这个插件,Obsidian 的图片管理可以做到全自动、零操心。
如果觉得有用,欢迎 star 和反馈。


















