Obsidian R2 Image Uploader 插件使用手册
自己开发的 Obsidian 图片管理插件,上传/粘贴图片,自动上传到 Cloudflare R2 储存桶。
Obsidian 是一款本地优先的知识管理软件,因为默认用 Markdown 存储文档,所以图片管理一直是“老大难”。当然,这是 Markdown 文档的通病。
最好的方式,莫过于把图片上传到图床。而且,作为知识管理的核心资产,图片也应该像文本一样,完全掌握在自己手上。
经过详细的分析对比,我决定采用自建图床的方案,使用 Cloudflare 的 R2 存储桶,作为我的第一选择。同时开发了 Obsidian 专用的图片管理插件,在 GitHub 上开源,具体功能如下:
| 功能 | 说明 |
|---|---|
| 粘贴上传 | Ctrl+V 粘贴图片 → 自动上传 → 插入 markdown 链接 |
| 命令上传 | Ctrl+P → 「上传图片到 R2」→ 选择文件上传 |
| 图片管理 | 侧边栏 🖼️ 图标 → 查看/复制/重命名/删除 |
| 智能重命名 | 重命名自动搜索笔记引用,一键替换旧链接 |
| 批量删除 | 管理面板中切换选择模式,批量删除图片 |
具体配置可能有一丢丢麻烦,但是不用担心,跟着我的步骤一步一步做,一定不会错。
图床配置
如果没有 Cloudflare 账号,建议去注册一个。
创建存储桶
注册后登录,在左侧栏中找到 存储和数据库 > R2 对象存储 > 概述。

在 R2 对象存储的概述页面,点击右侧的 创建存储桶,跳转到存储桶的创建页面。
参考我的配置创建即可。

存储名称可自定义,位置就近选,默认存储类选标准即可。
设置自定义域名
存储桶创建后,默认是 对象 这个子页面。

切换到 设置 子页面,在 自定义域 选项中点击 添加,在弹出的对话框中输入一个自己的域名,然后继续。

预览 DNS 记录,没问题的话,直接点下方的 连接域。

稍等片刻,自定义域中的状态变成“活动”,Access 变成“已启用”,就说明配置成功了。
连接自定义域会让您的存储桶内容可以通过该域公开访问。连接的网站还可以利用 Cloudflare 功能,如机器人管理、访问和缓存。
插件设置
下载安装
- 从 obsidian-r2-uploader 下载插件的最新版本。
- 如果不需要自己修改,只需要保留
main.js、manifest.json、styles.css这三个文件即可。 - 将
obsidian-r2-uploader目录复制到你的 Obsidian 插件目录<vault>/.obsidian/plugins/下。

data.json是配置插件时自动生成的。
软件配置
打开 Obsidian > 设置 > 第三方插件 > 启用 R2 Image Uploader 。

然后点击齿轮按钮,进入插件的设置对话框,依次输入以下内容:
| 设置项 | 说明 | 示例 |
|---|---|---|
| Account ID | Cloudflare 账户 ID | 3792fd7e... |
| Access Key ID | S3 凭证的访问密钥 ID | b462a44e... |
| Secret Access Key | S3 凭证的机密访问密钥 | 20a9a389... |
| 存储桶名称 | R2 存储桶名称 | images |
| 自定义域 | 图片的公开访问域名 | https://img.example.com |
| 上传目录 | 上传路径前缀,留空则传到根目录 | images |
Account ID 获取方式
在 Cloudflare 的 存储和数据库 > R2 对象存储 > 概述 页面右侧的 Account Details,中复制即可。

Access Key 获取方式
在以上 Account Details 中点击 Manage ,跳转到令牌创建页面。

点击 创建 Account API 令牌 ,跳转到创建帐户 API 令牌页面,参考我的设置,点击最下面的按钮完成创建。

创建成功后,将 访问密钥 ID 和 机密访问密钥 复制到插件设置对话框的对应位置。

令牌值、 访问密钥 ID 和 机密访问密钥只显示一次,请及时保存。
设置完成后,点击 测试 确认连接成功,即可开始使用。

使用方法
上传图片
- 粘贴上传:复制图片 > Ctrl+V > 输入名称 > 自动插入
 - 命令上传:Ctrl+P >
上传图片到 R2> 选择文件 > 输入名称 > 自动插入
管理图片
点击侧边栏 🖼️ 图标,或 Ctrl+P > R2 图片管理 ,支持以下功能:
- 🔍 搜索文件名/路径
- ☑️ 批量选择删除
- 📋 复制 markdown 链接
- 🔗 复制 URL
- ✏️ 重命名(可同步替换笔记引用)
- 🗑️ 删除(检测引用笔记,可选清理引用)
常见问题
- 400 错误:检查 Account ID、Access Key ID、Secret Access Key 是否正确。
- 管理面板无图片:检查 S3 凭证(管理面板也使用 S3 凭证),点击设置中的「测试」验证。
- 如果不小心弄丢密钥,又不想重新创建 Account API 令牌,可以在 API 令牌管理页面,点击对应账户 API 令牌右侧的三点,在弹出的对话框中选择
轮转,即可更新密钥。
