【教程】使用 Cloudflare R2 和 PicGo 搭建自己的图床
简单聊聊
这是一次博客搭建心得分享。图片的存储、上传和调用很容易让人头疼,我推荐新手试试 Cloudflare R2 配合 PicGo:操作简单、方便维护,也不容易在写文章时出错。我的博客图片也是通过这套方式保存和调用的。
为什么博客需要独立图床
写博客时,图片如果直接放在项目文件夹,文章一多就会让仓库变大,替换图片和寻找链接也不方便;如果把图片分散上传到不同平台,又容易遇到链接失效、限制外链或格式不兼容的问题。一个稳定的图床,应该把上传、存储、访问和 Markdown 链接连成一套固定流程。
Cloudflare R2 是对象存储服务,负责保存图片;PicGo 是桌面上传工具,负责把本地图片一键传到 R2,并自动生成链接;自定义域名让图片拥有自己的访问地址。最终流程很简单:
本地图片 → PicGo 上传 → Cloudflare R2 → 自定义图片域名 → Markdown 引用我也推荐将域名购买和 DNS 解析统一放在 Cloudflare 管理。无论是搭建网站,还是给 R2 绑定图片域名,都可以在同一个平台完成,后续维护会省心很多。
在 Cloudflare 创建 R2 Bucket
登录 Cloudflare 后,在左侧找到 R2 对象存储,创建一个新的 Bucket。Bucket 可以理解成存放图片的文件夹,名称建议简短、全小写,例如 blog-images。创建完成后,后续上传的图片都会保存在这里。
Bucket 不是自动公开的网页空间,创建后还要配置访问方式。不要把它当成只放一次图片的临时位置;从一开始就想好用途、命名和域名,后续文章越来越多时会更容易管理。

创建 S3 API 凭据并绑定自定义域名
PicGo 需要通过 R2 的 S3 兼容 API 上传图片。在 R2 的 API 或管理凭据页面中,创建具有 Bucket 读写权限的 Access Key ID 和 Secret Access Key,同时记下账户专属的 Endpoint。这些资料稍后会填写到 PicGo。
**密钥只应该保存在自己的密码管理器或 PicGo 本地配置中。**不要把完整密钥截图公开、不要写进 Markdown、不要提交到 GitHub。如果怀疑密钥泄露,立即在 Cloudflare 删除旧密钥并重新创建。
接着在 Bucket 的设置中绑定自定义域名,例如 img.example.com。Cloudflare 会提示 DNS 配置;如果域名本来就在 Cloudflare,通常按提示确认即可。绑定完成后,图片将通过自己的子域名访问,而不是使用临时或难记的存储地址。


下载 PicGo 并安装 s3-lls
下载并安装 PicGo,它是一个帮助你把图片上传到图床的桌面工具。打开 PicGo 的插件设置,搜索并安装 s3-lls。这个插件支持 Amazon S3,以及 Cloudflare R2、Backblaze B2 等兼容 S3 API 的对象存储,所以可以用来连接刚才创建的 R2 Bucket。
安装后进入 s3-lls 的配置页,填写 Bucket 名称、Access Key ID、Secret Access Key、账户专属 Endpoint 和自定义域名。字段名称会随插件版本略有不同,但原则不变:**上传地址使用 R2 Endpoint,最终访问地址使用自己的图片域名。**图片命名保持插件默认规则即可,不需要一开始手动设计复杂的文件命名方案。请参考图片我圈起来的地方,这些是与你的R2存储桶的API凭据是要一样的,其他位置像我一样写,避免出错。

使用 compress-next 自动转成 WebP
图片格式同样会影响网站体验。手机拍摄的 .HEIC 在网页上的兼容性并不稳定;.png 对照片往往太大。对博客图片来说,.webp 通常能在体积和兼容性之间取得更好的平衡。
我会在 PicGo 中再安装 compress-next 插件,并按照插件的说明开启上传压缩和 WebP 转换。之后每次上传图片,PicGo 会先处理格式,再传到 R2。这样文章引用的是可被浏览器正常识别的 .webp,不需要每次手动转换。
上传图片并在 Markdown 中调用
配置完成后,把任意图片拖进 PicGo,或使用它的上传快捷方式。上传成功后,PicGo 会把图片保存到 R2,并自动复制 Markdown 链接。你可以直接粘贴进文章:
在正式写博客前,建议先上传一张测试图,并在浏览器中直接打开生成的链接。能正常显示、地址是自己的图片域名、扩展名为 .webp,就说明上传、域名和调用链路都已经通了。

从此以后,写文章只需要准备好图片、交给 PicGo 上传,再把生成的 Markdown 链接放进博客。R2 负责稳定存储,PicGo 负责减少重复操作,自定义域名让图片地址保持整洁。这套方案不复杂,但能让博客长期维护轻松很多。