Cloudflare 的 R2 储存桶提供了免费的 10GB 空间再加上 100 万次 A 类操作(写入),1000 万次的 B 类操作(读取),小博客存放图片够用了,不过是需要绑定付款方式的,不过无需绑卡的方案也有不少,比如 IBM 云有免费的 25GB 对象储存,具体还请自行搜索,这里就不多叙述了
创建储存桶
首先登录 Cloudflare,在左侧菜单的 Storage & databases 里找到 R2 object storage,第一次使用需要输入付款方式(不超过免费额度是不会扣钱的),我是直接用 PayPal 绑定一遍再解绑,避免意外

进入到 R2 页面后,点击 Create bucket 创建储存桶

在下一页的 Bucket name 里给储存桶命名,其余的选项保持默认即可

创建完成后会跳转到储存桶详情页,点击 Settings

找到 Custom Domains,绑定一个子域名,如 images.example.com ,CF 会自动创建一条 DNS 记录(所以这个子域不能是已经解析过的)
接下来需要创建一条 API Token,回到 R2 主页面,在页面右下角找到 API Tokens,点击右方的管理按钮

在下一页选择 Create User API token 并设置权限为 Read & Write(读+写),Specify bucket 就选择刚刚创建的储存桶

创建后 CF 会显示 Access Key,Secret Key,以及 Endpoint,把这三项信息记下来,稍后配置插件时要用到

到这里,在 CF 中的配置已经完成
安装配置插件
转到 WP 后台,在安装插件里搜索Advanced Media Offloader,安装并启用插件
在后台左侧找到 Media Offloader,进入到设置页面

依次填入信息后保存:
- Access Key
- Secret Key
- Endpoint
- Bucket 名称
- 自定义域名

保存后进入到 WP 的媒体库,随便上传一张图片作测试,上传后右键图片复制图片地址,如配置正确的话图片的网址会类似于:https://images.example.com/2026/03/xxxxx.png,代表插件已经成功配置
本文所有图片都是利用这个方法挂载到 R2 的,可以参考看看
我到现在才发现原来 CF 全称是 Cloudflare,一直以为是 CloudFlare 🙁
写到一半发现可读性有点差,改了一遍还是有些奇怪,抱歉 😥