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

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

插件地址

前言

最近在 X 上看到一个帖子特别火,教怎么把图片上传到云存储:

x帖子

说的是用 Cloudflare R2 做图片存储。R2 的优势很明显——免费额度大(每月 10GB 存储、100 万次读取),用来存笔记图片绑绰有余。

但我查了一下 Obsidian 社区现有的方案,都有些不足:

搜索到的结果

所以我自己用 AI 辅助开发了一个专门针对 R2 的上传插件。插件地址

插件功能

插件截图

核心功能三个:

  1. 自动上传到 R2:粘贴/拖拽图片后自动上传,自动替换为远程链接
  2. 等待压缩完成:检测图片是否正在被其他插件(如 image converter)压缩,压缩完成后才上传
  3. 自动清理本地文件:上传成功后自动删除本地图片副本

配合 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 插件设置中:

image-20260316170030657

搞定。

总结

特性 本插件 obsidian-cloudflare-plugin custom image auto upload
上传到 R2 ✅(需要 PicList)
等待压缩完成
无外部依赖
自动删除本地文件

Cloudflare R2 免费额度对个人笔记图片存储来说完全够用,配合这个插件,Obsidian 的图片管理可以做到全自动、零操心。

如果觉得有用,欢迎 star 和反馈。