使用 Cloudflare R2 存储搭建图床

前言

选择 Cloudflare R2 作为图床的图片存储仓库,单纯是因为不再想折腾了,也不想再违规使用 GitHub 仓库。
需要注意的是,白天时段从境内连接 Cloudflare CDN 服务器的速度勉强还能凑合,晚高峰就不忍直视了。

使用之前检查下 Cloudflare R2 的免费额度和计费模式(确认日是 2024/06/27):
官方文档:Pricing · Cloudflare R2 docs

🌟 Free tier | 免费额度

Feature Limit Remarks
Storage 10 GB / month 一月中平均每天都存储量不超过 10 GB
Class A Operations 1 million requests / month 对存储桶对操作、上传文件、删除文件等操作
Class B Operations 10 million requests / month 访问文件、下载文件等操作
Egress (data transfer to Internet) Free

假设每张图片 10MB,那么 10G 可以存储 1000 张图片,每月 1M 次操作可以保证每张图片每天被访问 33 次,10M 次操作可以保证每张图片每天被访问 330 次。
已经足够使用了。

💵 R2 pricing | 价格

Feature Standard storage Price Infrequent Access storage Price
Storage $0.015 / GB-month $0.01 / GB-month
Class A Operations $4.50 / million requests $9.00 / million requests
Class B Operations $0.36 / million requests $0.90 / million requests
Data Retrieval (processing) None $0.01 / GB
Egress (data transfer to Internet) Free Free

没什么好说的,相当便宜了。

操作步骤

一、建立 R2 存储桶并公开

1. 创建存储桶

切换到 R2 并创建存储桶
配置存储桶信息

2. 设置存储桶的访问权限

这里需要提前将域名托管到 Cloudflare,以使用 Cloudflare 的自动的 连接域 功能。

切换到设置界面
添加自定义域
等待自定义域配置完成

3. 上传图片测试访问

拖拽上传
上传的图片名为 头像.jpeg,访问地址为 https://ceshi.senjianlu.com/头像.jpeg,试一下:
测试访问图片
没有问题,访问成功!
至此,cloudflare R2 存储桶的建立和访问权限的设置就完成了。

二、获取配置信息

之后我会使用 uPic 作为图片上传工具,因此配置项的名称可能与你的不同。
这里只介绍重点的、获取以下的配置信息的方法:

  • 服务端 URL
  • Access Key
  • Secret Key

1. 服务端 URL

也会被标识为:S3 API、自定义节点、Endpoint 等。

注意这里不仅仅是域名,还有一个与存储桶同名的路径 /ceshi,之后配置的时候也需要带上。
获取服务端 URL

2. Access Key

也会被标识为:访问密钥 ID、应用密钥 ID 等。

这里需要创建 API 令牌才可以获取到 Access Key 和 Secret Key。
管理 R2 API 令牌
配置新的 API 令牌
仅应用于该存储桶
获取访问密钥 ID

3. Secret Key

也会被标识为:机密访问密钥、应用密钥等。

获取机密访问密钥

三、配置 uPic

关于 PicGo 的大致配置方法可以参照文章:PicGo + 白嫖Cloudflare R2 存储做图床
其他工具的配置方法也大同小异,只是界面和配置项的名称不同。

1. 填入服务端 URL、Access Key 和 Secret Key,之后设置下你连接的域名即可。

uPic 设置

2. 保存后选择对应的图床

选择图床

3. 上传测试

你可以直接点击 验证 按钮,也可以直接上传图片测试。
默认会将图片上传至 uPic/ 目录下:
检查图片上传成功
上传成功后,会自动复制图片的 URL 地址,直接粘贴即可。

后记

之后需要合理配置缓存,以降低超额使用的风险。