封面图来源:https://blog.cloudflare.com/content/images/2021/09/Cloudflare-R2-Storage-OG.png
新建 R2 存储桶
添加订阅
和其他 CF 免费服务不同,R2 超出免费额度后不是自动停用等待下个月额度恢复,而是扣钱按量付费,因此需要绑定一个支付手段。因为我之前在 CF 购买域名添加了 paypal (绑定招行的人民币借记卡),因此可以直接使用 paypal。(实际上给的免费额度也十分充裕,对于个人乃至一大坨人使用的图床已经足够了)
Cloudflare R2 不收取进出流量费用。


创建桶


上传文件
CF R2 管理页面就能上传文件。

备注
目前,通过网页一次最多只能上传 100 个文件。如想要一次上传超过100个文件,请考虑使用调用了 S3 API 的程序,如下文的 Cloudreve。
也可以选择要被删除的文件。

配置公开访问
R2 默认不允许公开访问,只能通过 API 访问。若想搭建图床之类的并能直接访问,需要配置有域名。
方法一:添加自定义域
此方法需要购买了域名并且托管在了 CF 上(如我的 eterance.com)。由于自己持有的域名可以享受 CF 的诸如免费 CDN 、Zero Trust 等服务,使用自己的域名绑在 R2 上也能享受到。
提示
此方法需要购买域名,所以有成本。最便宜的是使用优惠券购买 Namesilo 上的 .top
、.xyz
域名(叠加优惠码后第一年仅 1 美元),但是需要年抛(续费没有优惠);长期持有推荐在 CF 上购买,虽然首年没有优惠但是次年比 Namesilo 便宜,购买后开箱即用不需要转移解析。
CF 购买域名见:Cloudflare 购买与解析域名

- 点开存储桶的设置;
- 填入自己的域名,可以是三级域名;
- 保存。

之后就能浏览器 https://<自定义域名>/<文件名>
访问存储桶里的文件了。

方法二:使用 R2.dev 子域
提示
此方法没有任何成本,但是不能使用 CF 提供的其他服务,并且速度受到限制(虽然不知道限速多少,但是几个人访问图片似乎没问题)。
下面蓝框就是分配给这个存储桶的域名。点击允许访问
,在弹出来的窗口输入 allow
并确定。

之后就能浏览器 https://<分配给你的域名>/<文件名>
访问存储桶里的文件了。

R2 创建访问密钥(非必需)
只有你有需求在第三方程序中访问 R2 才需要建立 API 令牌。



- 去个自己能区分的名称。
- 选择权限:读写或者只读。某些第三方程序会需要管理员读写,比如下文的 Cloudreve。
- 选择本密钥可访问的存储桶。
- 选择不过期。

设置 CORS 策略(可选)
一般也不需要设置(出于安全考虑这里也不建议设置)。如果遇到 R2 作为博客图床,但是图片打不开的情况,F12 发现遇到 CORS 问题,则需要配置。
官方文档:Configure CORS · Cloudflare R2 docs
进入你想设置 CORS 的存储桶的设置,拉到下面:

配置为允许特定源
比如要设置为允许两个域名:
[
{
"AllowedOrigins": [
"https://blog.eterance.com",
"https://blog.baldcoder.top"
],
"AllowedMethods": [
"GET"
]
}
]
配置为允许所有源
如果上面配置为特定源后仍然不能修复问题,或者作为随机图片 API 的图床提供服务需要设置为所有源可访问,那么需要如下设置:
[
{
"AllowedOrigins": [
"*"
],
"AllowedMethods": [
"GET",
"POST",
"PUT",
"DELETE",
"HEAD"
],
"AllowedHeaders": [
"*"
]
}
]
使用 CloudReve 连接 R2
官方文档:S3 兼容 - Cloudreve
首先到官网下载最新版的 Windows AMD64 版,解压打开里面的 cloudreve.exe
。
第一次启动会给出随机的管理员邮箱、密码和端口号(默认5212).

浏览器打开 localhost:5212
,管理员登录后打开管理面板,添加 S3 存储策略。



添加 R2
Cloudreve 需要的 API 密钥权限是管理员可读可写。


下一步。存储目录写 /
,不开启重命名。

之后 3、4 直接下一步,直到 5 跨域策略点击自动设置,然后完成。

新建用户
由于 Cloudreve 一个用户在同一时间只能绑定一个存储策略,并且即使切换多个存储策略,所有存储策略的文件都是混在一起,非常不便于管理,因此最好一个用户组的用户单独使用一个存储策略。
首先创建一个用户组,用户组名随意,存储策略选刚才建好的那个,打开“允许高级文件删除选项”,其他保留默认(你可以改大你的初始容量),保存。


然后新建用户:

email、昵称和密码随便写,用户组选择刚才建好的用户组,然后保存就建好了。

导入 R2 中已有的文件(可选)
如果你之前在 R2 中网页上传了文件,可以手动导入到 Cloudreve中。

存储策略和目标用户选刚才建的,原始目录路径和目的目录路径都写 /
,导入。

管理文件
现在右上角退出登录,登录到你刚才建好的帐户,即可管理这个 R2 存储桶的文件。
使用 AList 连接 R2(废弃)
绑上之后发现不能通过 Alist 上传文件。以下废弃,仅留做存档。

安装
官网文档:https://alist.nn.ci/zh/guide/install/manual.html
首先下载 Windows 程序(v3.27.0):https://github.com/alist-org/alist/releases/download/v3.27.0/alist-windows-amd64.zip,并解压。
然后打开一个 CMD 窗口,cd 到 Alist 程序的文件夹,输入 .\alist.exe server
:

保持这个 CMD 不要关闭,新打开一个 CMD,cd 到 Alist 程序的文件夹,输入 .\alist.exe admin random
,会给出 admin 帐户的随机密码:

浏览器打开 http://localhost:5244, 输入账户密码登录。
绑定 R2
顺利登录后,点击下方的管理



- 驱动:选择对象存储。
- 挂载路径:随便写。

- 根文件夹路径:默认。
- 存储桶:填之前建立的桶名。
- Endpoint:填 CF 面板给的 S3 API。
- 地区:auto。
- 访问密钥 ID:填之前建立的 API 密钥的访问密钥 ID。
- 安全访问密钥:填之前建立的 API 密钥的机密访问密钥。
保存创建后,回到主页,就能访问 R2 了。

Comments NOTHING