文章 /

Cloudflare R2 + PicGo 搭建图床

低成本、可控域名 R2 + PicGo 个人图床

个人图床不需要单独维护服务端。Cloudflare R2 + PicGo 在 Cloudflare 免费计划下能长期保留。

free-tier

一、适用范围

R2 适合个人博客、文档站和低频资源上传。不适合要求复杂图片处理、细粒度访问控制或多人协作审批的场景。

免费计划每月有 10GB,对个人图床通常够用。而且核心诉求只是稳定托管静态图片,应先选这类低维护方案。

二、存储桶和访问域名

  1. 进入 Cloudflare 控制台,打开 R2 -> 创建存储桶
  2. 输入存储桶名称并创建
  3. 进入该存储桶,打开 设置 -> 添加自定义域
  4. 输入自定义域名并确认,让 Cloudflare 自动生成对应 DNS 记录
  5. 先手动上传一个文件做测试,确认桶可正常读写

只有在“桶可写 + 域名可读”都成立时,PicGo 接入才有意义。否则后续所有上传测试都会变成伪成功。

三、API 权限

路径:R2 -> Account Details -> Manage API Tokens -> 创建令牌

  1. 令牌权限选择 对象读和写
  2. 作用范围选择 仅应用于特定存储桶
  3. 创建后保存好以下信息
  • 访问密钥 ID
  • 机密访问密钥

图床场景需要权限限制,令牌只绑定目标桶,后续排查和迁移都会方便清晰。

四、PicGo 接入 R2

  1. 下载并安装 PicGo
  2. 在 PicGo 插件市场安装 S3 插件
  3. 打开 PicGo -> 图床设置 -> Amazon S3,新建一个配置

参数对应关系:

PicGo 字段填写内容
应用密钥 IDR2 的 访问密钥 ID
应用秘钥R2 的 机密访问密钥
桶名R2 页面中的存储桶名称
文件路径{year}/{month}/{fileName}.{extName}
自定义节点R2 页面提供的 S3 终结点(Endpoint)
拒绝无效 TLS 证书链接yes
ACL 访问控制列表public-read

PicGo 只是上传器,不负责修正 R2 侧配置。如果 桶名Endpoint 或自定义域名任一项不一致,应检查 Cloudflare 配置并校正。

五、最小验收

  1. PicGo 上传区选择图片并上传
  2. 确认 Cloudflare R2 对应存储桶文件已生成
  3. PicGo 中复制上传后的链接并直接访问
  4. 从文章或页面里引用一次图片,确认外链可正常加载

这套方案追求的是低成本、少维护、可迁移,充分利用 Cloudflare R2 免费计划的优势适合个人博客使用。