前言
Cloudflare R2存储推出有一段时间了,从内测到开放使用,功能一点点完善,现在不但支持浏览器直接在cloudflare的后台拖拽上传,还一点点开始适配亚马逊的S3协议。
年初的时候我全网首发了使用FOF upload插件上传文件至阿里云oss的设置教程
cloudflare的R2存储不同于传统的S3协议,他的灵活性更高,上传和访问独立,一定程度上也提高了安全性
不出意外,这篇文章应该也算全网首发关于”使用Flarum FOF upload 插件将文件上传至Cloudflare R2存储“教程
优势
R2存储相比于OSS提供的免费容量更大,每GB单价更低(海外地区),并且流量不计费
![](https://img-community.r2.dtnet.work/2022-10-11/1665498554-360698-image.png)
具体教程
访问 https://dash.cloudflare.com/sign-up/r2
点击”创建存储桶“,记住存储库名称,后面要用
![](https://img-community.r2.dtnet.work/2022-10-11/1665498623-805623-image.png)
![](https://img-community.r2.dtnet.work/2022-10-11/1665498673-408579-image.png)
在”设置“中开启公开访问
![](https://img-community.r2.dtnet.work/2022-10-11/1665498716-694671-image.png)
![](https://img-community.r2.dtnet.work/2022-10-11/1665498763-953319-image.png)
注意:此时建议刷新一下页面看看是否开启成功,有的时候由于网络原因,一开始显示开启,后面刷新发现没开启成功,这时候重复前面步骤,再开启一遍即可
如果访问的时候需要使用自己的域名可以在下面的域访问里面设置自己的域名
![](https://img-community.r2.dtnet.work/2022-10-11/1665498907-147454-image.png)
现在,存储库的基础设置已经完成,点击 https://dash.cloudflare.com/sign-up/r2 返回到R2存储库首页
点击右侧”管理 R2 API 令牌“
![](https://img-community.r2.dtnet.work/2022-10-11/1665499052-823776-image.png)
选择【编辑】
![](https://img-community.r2.dtnet.work/2022-10-11/1665499153-982293-image.png)
在下面的时间长度中选择令牌有效期,默认最长一年,一年以上需要到自定义里面自行设置
![](https://img-community.r2.dtnet.work/2022-10-11/1665499215-680320-image.png)
点击创建API令牌
![](https://img-community.r2.dtnet.work/2022-10-11/1665499252-130535-image.png)
将ID和密钥复制备用
![](https://img-community.r2.dtnet.work/2022-10-11/1665499430-696008-image.png)
创建完成后如需修改API有效时长可以点击编辑
![](https://img-community.r2.dtnet.work/2022-10-11/1665499306-490200-image.png)
修改有效期
![](https://img-community.r2.dtnet.work/2022-10-11/1665499345-553920-image.png)
修改完成后点击更新即可
![](https://img-community.r2.dtnet.work/2022-10-11/1665499374-446104-image.png)
此时,cloudflare后台的设置已经完成,我们转到flarum的后台,进入Flarum FOF upload 插件
按照下图将ID和密钥填入
![](https://img-community.r2.dtnet.work/2022-10-11/1665499721-681035-image.png)
在存储空间(Bucket)一栏中填入创建R2存储库时设置的名称
![](https://img-community.r2.dtnet.work/2022-10-11/1665499821-773920-image.png)
如图中的存储库名称即为dtcommunitydev
按照cloudflare文档的说明,地域(Region)填auto
或者us-east-1
![](https://img-community.r2.dtnet.work/2022-10-11/1665499968-429944-image.png)
在高级S3设置中填写存储库的S3 API地址
![](https://img-community.r2.dtnet.work/2022-10-11/1665500035-76675-image.png)
你可以前往R2存储库设置中获取或者直接点击按钮复制地址
![](https://img-community.r2.dtnet.work/2022-10-11/1665500096-66635-image.png)
访问控制列表(ACL)一栏直接留空
因为cloudflare R2存储暂时还不支持ACL
![](https://img-community.r2.dtnet.work/2022-10-11/1665500208-205479-image.png)
最后在上方填写访问域名
![](https://img-community.r2.dtnet.work/2022-10-11/1665500282-141848-image.png)
访问域名可以使用clouflare提供的地址
![](https://img-community.r2.dtnet.work/2022-10-11/1665500356-667748-image.png)
也可以使用刚刚设置的自有域名
![](https://img-community.r2.dtnet.work/2022-10-11/1665500398-279486-image.png)
检查上传方式为S3
![](https://img-community.r2.dtnet.work/2022-10-11/1665500505-210425-image.png)
此时,插件已设置完成
点击保存即可