WordPress 使用 Cloudflare R2 对象存储

由于网站服务器容量和流量限制,决定使用 Cloudflare 的 R2 对象存储作为博客的图床。

Cloudflare R2 对象存储有 10 GB 的免费存储空间,访问次数也是十分慷慨,虽然感觉 10 GB 其实并不多,但是对于网站前期来说是足够的,下面是设置记录:

  1. Cloudflare 绑定自己的域名(略)
  2. 开通 R2 对象存储和 API
  3. 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.