Ran's note

Ran's note

Cloudflare R2对象存储

2025-04-03
Cloudflare R2对象存储

赛博活佛Cloudflare家的R2对象存储的数据传输流量免费,并且提供了免费的使用计划,对于个人用户而言,使用R2作为图床使用是非常划算的。

💰免费内容和定价信息

免费的内容包括:

  • 每月10GB的存储空间

  • 每月1百万的更新操作

  • 每月1千万的读取操作

  • 全部的出站流量

超出免费部分的定价:

  • 每GB存储0.015刀

  • 每百万更新操作4.5刀

  • 每百万读取操作0.36刀

以上功能只需要注册Cloudflare并选择免费计划即可使用。开通R2存储需要添加付费方式,当用量超过限额的时候会进行扣费,个人使用需要注意用量。


🗄️存储桶的创建与配置

存储桶的创建

登录Cloudflare控制台,下拉左侧边栏找到R2对象存储,进入后点击右上角的创建存储桶(Bucket)。

  • 首先填写存储桶的名称。名称要求唯一,不能与已有的存储桶重名,且只能使用字母数字与连字符。

  • 之后选择数据的存储位置。针对数据的访问需求可以选择距离使用者更近的地理位置,默认是美西。

  • 最后选择存储类型。使用默认类型即可,不频繁访问类型是用于数据归档,几乎不进行访问的数据。

存储桶创建页面

完成上述选择后点击创建存储桶即可完成存储桶的创建。

存储桶的配置

存储桶创建完成之后就可以通过页面上传文件,但上传的资源还不能被公开访问。

为了公开访问存储桶中的资源,还需要为存储桶绑定一个自定义域(建议),或打开公共开发URL选项(不建议)。

启用公共开发URL选项会生成一个URL,任何人都可以通过这个URL访问资源,并且有速率限制,不建议用于正式的环境中。

进入到存储桶的设置页面找到自定义域的选项,点击添加并设置一个托管在Cloudflare上的域名或者子域名,Cloudflare会自动添加解析记录,之后就可以通过自定义的域名公开访问存储桶中的资源了。

存储桶还可以配置CORS策略,来避免资源被跨域引用,有需求可以在CORS 策略 中按需添加域名信息。


🧰使用工具连接存储桶

存储桶可以通过Cloudflare的页面与官方的CLI工具连接和使用,易用性略差。想要使用存储桶作为图床使用,需要配合一些工具来提高使用效率。

Typora是一款很优秀的Markdown文档编辑器,它本身不支持直接将插入的图片上传到云端,但可以配合PicList完成自动上传图片资源的功能。

R2是兼容AWS S3协议的,要让客户端连接存储桶,需要以下信息:

  1. 访问密钥ID(AccessKeyID),创建令牌完成页面查看

  2. 机密访问密钥(SecretAccessKey),创建令牌完成页面查看

  3. 存储桶名称(Bucket),R2管理界面可以查看

  4. S3 API(终结点,自定义节点),R2存储桶设置页面查看

  5. 自定义域(自定义域名,CDN域名),R2存储桶设置页面查看

  6. 存储桶位置(区域),R2存储桶设置页面查看

其中密钥ID与机密密钥需要创建API令牌才能获取,在R2管理界面一次点击右上角API ->管理API 可以进入API管理页面。点击创建 AccountAPI 令牌 ,选择对象读和写 ,点击创建 AccountAPI 令牌 完成创建。在弹出的页面中可以获取访问密钥ID、机密访问密钥与S3 API终结点。

各配置项图示

Cloudflare创建 Account API 令牌界面

PicList创建图床界面

在PicList中添加S3图床,依次填入上方收集的信息即可连接到R2存储桶。

打开Typora进入设置页面,找到图像设置,按照下图设置PicList,验证通过后即可自动将粘贴的图片上传到R2存储,并自动应用图片公开链接到文档中了。