Cloudflare R2对象存储搭建高速免费图床完全指南

0.前言

几年前,当我第一次把域名扔进Cloudflare的怀抱时,仿佛打开了新世界的大门——高效DNS解析、免费的SSL证书、免费安全的CDN加速…

前不久,我用Cloudflare免费提供的Pages服务部署Hexo博客后,又再次感叹于Cloudflare的慷慨大方和高效优雅的网站托管服务。

而今天,当Cloudflare R2对象存储提供的大容量免费额度成为了我博客的图床服务,我终于体验到Cloudflare全站式托管的终极优雅。

1.Cloudflare R2定价解析

官方定价说明
官方费用计算器 - R2 Calculator
下面是Cloudflare R2提供的免费额度以及超额部分的收费表,对比我之前介绍的Backblaze云存储方案以及其它云存储服务商,Cloudflare R2在免费额度和出口流量政策上更具竞争力。

类型 免费额度 超额付费
存储 10 GB-月/月 $0.015/GB/月
A 类操作 100 万个请求 / 月 $4.50/100万个请求
B 类操作 1000 万个请求 / 月 $0.36100万个请求
出口流量 全球免费① 全球免费①

注解①
通过以下方式访问R2时,不收取数据传输(出口)费用:

  • 通过Workers API直接访问
  • 通过S3兼容API访问
  • 通过r2.dev子域名访问

API有不同操作,这里指的是下载/获取(GET操作)数据,为出口流量;上传(PUT操作)数据,为入口流量(不收费),计入A 类操作。

出口流量(Egress):数据从R2存储桶传输到公共互联网产生的流量。

在大多数云服务中,比如AWS S3或腾讯云COS,当用户下载文件时,数据从存储服务传输到用户的设备,通常会涉及到出口流量费用。而Cloudflare R2的特殊之处在于,如果通过其特定的方式访问数据(比如通过Workers、S3 API或r2.dev域名),出口流量是免费的。

  • 传统云存储计费模式(如AWS S3):
    当用户请求资源(如图片)时 → 数据经云厂商网络出口到公网 → 按GB收费
  • Cloudflare R2的革新模式
    当用户请求资源(如图片)时 → 数据经Cloudflare全球网络内部路由 → 零费用

目前我的Cloudflare R2图床存储桶已经有2.43k张图片,空间才用了不到500M,而且我的图片全都是没经过压缩直接上传的。
10G容量看起来貌似挺小的,但作为个人图床的话完全够用了。

2.R2账户配置

登录Cloudflare账号,点击R2对象存储,这里需要添加一个付款方式才能使用,支持信用卡或PayPal,添加完成后,点击 将R2订阅添加到我的帐户 即可。

  • 实测支持国内银联信用卡,没有信用卡也可以用PayPal账户(可绑定普通银行卡)
  • 只有当你使用量超过每月限额时,超额部分才会向收费。
### 使用 Cloudflare 搭建 #### 准备工作 为了使用 Cloudflare 搭建,需要拥有一个域名并将其 DNS 解析托管给 Cloudflare。完成此操作后,在 Cloudflare 控制面板内启用 SSL/TLS 加密功能以确保片加载的安全性[^1]。 #### 创建存储桶 选择 Amazon S3 或其他支持 CORS 的对象存储服务作为实际存放片文件的地方。创建一个新的存储桶,并设置公共读取权限以便于通过 URL 访问上传的像资源[^2]。 #### 配置 Workers 脚本 利用 Cloudflare 提供的边缘计算平台——Workers 来编写简单的 JavaScript 代码处理 HTTP 请求并将请求转发到指定的对象存储位置。下面是一个基本的例子: ```javascript addEventListener('fetch', event => { let url = new URL(event.request.url); // 修改为自己的S3 bucket地址 const s3Url = 'https://your-s3-bucket-url'; if (url.pathname.startsWith('/img/')) { let path = url.pathname.replace(/^\/img\//, ''); return event.respondWith( fetch(`${s3Url}/${path}`, { cf: { cacheEverything: true } }) ); } }) ``` 这段脚本会拦截所有 `/img/*` 形式的路径访问,并将这些请求重定向至设定好的 S3 存储桶中对应的文件夹下查找相应片[^3]。 #### 设置缓存策略 为了让用户的浏览器能够更高效地缓存静态资源,在 Worker 中可以自定义响应头来控制缓存行为。比如上面例子中的 `{ cf: { cacheEverything: true } }` 就是用来指示 Cloudflare 对该类请求开启全局 CDN 缓存优化[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值