由于网站服务器容量和流量限制,决定使用 Cloudflare 的 R2 对象存储作为博客的图床。
Cloudflare R2 对象存储有 10 GB 的免费存储空间,访问次数也是十分慷慨,虽然感觉 10 GB 其实并不多,但是对于网站前期来说是足够的,下面是设置记录:
- Cloudflare 绑定自己的域名(略)
- 开通 R2 对象存储和 API
- WordPress 相关设置和测试
1. Cloudflare 绑定自己的域名(略)
由于之前已经绑定了自己的一个闲置域名 duckairways.com,所以该步骤略过:

2. 开通 R2 对象存储和 API
重要的参数用了高亮进行了标注,在步骤 3 中会用得到
点击左侧 R2 对象存储,关联信用卡或 Paypal 账户,建立支付关系(使用量超过免费额度之后会收取费用)。随后创建存储桶,在这里我设置的桶名为 duckairways


在自定义域,设置一个喜欢的域名,在这里我设置的是一个二级域名 bucket.duckairways.com。
开启公共开发 URL ,目的让你的图片文件可以公开访问。

回到 R2 对象存储主页面,开始创建一个 API。注意:勾选对象读与写,这样可以确保有权限上传和访问图片。



创建完成后,即可获得你所需要的API信息,分别是:
访问密钥 ID(Access Key ID)例如:12334D
机密访问密钥(Secret Access Key),例如:5678K
终结点(Endpoints) 的默认 URL,例如:https://xxxx.xx
关闭该页面后将无法再次查看相关信息,所以最好是复制下来。

3. WordPress 相关设置和测试
进入插件页面,搜索、安装、启用 Advanced Media Offloader,

进入 Advanced Media Offloader 设置页面,发现需要设置一下参数。

进入你的服务器,在 WordPress 的安装目录找到 wp-config.php 文件,在文件末尾添加:
define('ADVMO_CLOUDFLARE_R2_KEY', '访问密钥 ID');
define('ADVMO_CLOUDFLARE_R2_SECRET', '机密访问密钥');
define('ADVMO_CLOUDFLARE_R2_ENDPOINT', '终结点的默认 URL');
define('ADVMO_CLOUDFLARE_R2_BUCKET', '桶名称');
define('ADVMO_CLOUDFLARE_R2_DOMAIN', 'https://自定义域');
注意最后一行的自定义域不要忘记添加前面的 https://,比如我填写的
define('ADVMO_CLOUDFLARE_R2_KEY', '12334D');
define('ADVMO_CLOUDFLARE_R2_SECRET', '5678K');
define('ADVMO_CLOUDFLARE_R2_ENDPOINT', 'https://xxxx.xx');
define('ADVMO_CLOUDFLARE_R2_BUCKET', 'duckairways');
define('ADVMO_CLOUDFLARE_R2_DOMAIN', 'https://bucket.duckairways.com');
保存后刷新插件的设置页面,如图:

后面可以根据自己的需求选择对应的 Offload 策略,也可以自定义文件在桶中的存储路径,比如我设置的存储路径为 cornernorth, 这样文件 file.jpeg 的访问地址将会成为 https://bucket.duckairways.com/cornernorth/file.jpeg, 如果没有自定义存储路径,那么默认的会是https://bucket.duckairways.com/file.jpeg
测试一下,上传一张图片,注意到图片已经成功 Offload,路径替换为了我在 R2 存储桶中的路径:

打开 R2 的管理页面,可以看到刚才上传的图片已经存储在了桶中:

END.