搭建图床cloudflare r2 picgo

本文适用于需要免费、稳定图床的博客作者。你会学到:用 Cloudflare R2 创建存储桶并绑定自定义域名,配合 PicGo 的 S3 插件实现一键上传图片,同时禁用公开转发 URL 防止被恶意刷流量。

R2 存储桶

购买 R2 计划

  • 需要信用卡,支持银联卡
  • 无需预先付费,验证通过就行

创建存储桶

img

img

两处完形填空:

  • 名字随便起,符合规范,简单点就行
  • 若主要面向用户大陆,推荐亚太地区

给存储桶绑定域名

为了使用自己的域名来访问文件:

img

注意,javaedge.cn 这个域名我已经在 CloudFlare 做过解析了。如果没有做过解析的话,需要先去做下!

img

填入一个域名,这里 javaedge.cn 是我的顶级域名;

my-img.javaedge.cn 是我自己定义的二级域名,按自己喜好就行。

img

img

需要手动刷新页面才会看到状态变化,大概一分钟变成 Active

添加自定义域名后,可以让 R2 存储桶的内容在互联网上公开访问。

禁用公开转发 url

image-20250615115926532

禁用 公开转发url 可以让未知请求(例如请求不存在的文件)不进入 R2 存储桶。这样可以避免恶意请求刷爆免费的 B 类次数。

使用 PicGo 上传图片到 R2

创建 R2 API 令牌

img

img

img

img

准备以下信息

Access Key IDd9d04a555b70c12e09fd949d358d293e
Secret Access Key7d66bad4ce5fc88f07ef34be7352de5eb3da0d44913c9bc90fc3c931f8d21d59
Use jurisdiction-specific endpoints for S3 clients:https://xxxxxx.r2.cloudflarestorage.com

PicGo 配置自动上传图床

安装 S3 插件

搜索时,可能网比较卡,半天才出来,多试几次:

image-20250525015630576

img

img

配置完成!本文图片都是该图床!验证完毕!

验证与自查

  1. 上传一张图片后,用浏览器访问 https://my-img.javaedge.cn/<文件名> 能正常打开
  2. PicGo 上传日志无报错,图片 URL 使用自定义域名而非 pub-*.r2.dev 域名
  3. 在 Cloudflare 控制台确认存储桶的 公开转发url 为禁用状态
  4. 请求一个不存在的文件路径,应直接返回错误而不计入 R2 请求

参考