关于 Cloudflare R2 Storage 的使用体验测评和我的观点

本文是在 Cloudflare R2 Storage 公测阶段写的,随着时间的推移后续 Cloudflare R2 Storage 的功能可能发生变化,仅供参考,目前 Cloudflare R2 Storage 正在刚刚起步的阶段。
前不久我通过了 Cloudflare R2 Storage 的公测申请,已经可以看到并使用 Cloudflare R2 Storage 了,现在就带给大家我的使用体验和我的观点。

Cloudflare R2 Storage
对象存储有时也称为 Blob 存储,可以存储任意的大型非结构化文件。我们常用的有 AWS 的 S3、阿里云的 OSS、腾讯云的 COS、华为云的 OBS,都是对象存储,他们都可以为我们提供延迟一致、持久性高和容量无限的服务,免去了我们本地文件系统的共享、备份等痛点。
最为经典的是 AWS 的 S3(Simple Storage Service),刚刚推出的时候是革命性的服务,但也带来了新的痛点,上传、存储的费用还可以,但下载也就是取回的时候会被收取流量费,这个费用随着时间的推移,存储的文件越来越多,流量费也变得越来越高。
Cloudflare 就为我们带来了 R2 Storage,基于带宽联盟,为存储对象提供更低成本的存储服务。在后台,R2 自动智能管理数据分层,以在峰值负载时提高性能,并为不经常请求的对象降低成本。
R2 的配额限制
在公测期间,R2 有如下的配额限制:
- 每个账户可新建1000个存储桶
- 每个存储桶可存储无限个对象
- 每个对象大小最大5TB
- 单次最大上传大小5GB,可多次分段上传
- 每秒1000次的 A 类操作
- 每秒250次的 B 类操作
A 类操作包括ListBuckets、PutBucket、ListObjects、PutObject、CopyObject、CompleteMultipartUpload、CreateMultipartUpload、UploadPart、UploadPartCopy
B 类操作包括HeadBucket、HeadObject和GetObject
免费操作包括DeleteObject、DeleteBucket、DeleteMultipartUpload
R2 的收费价格
R2 存储的价格要比目前的存储服务都低,有一部分免费额度,免费额度用完以后才开始计费:
- 存储费用:每个月10GB免费额度,超出后每个月每 GB 收取 $0.015 的存储费用
- A 类操作费用:每个月一百万次免费额度,超出后每百万次收取 $4.50 的操作费用
- B 类操作费用:每个月一千万次免费额度,超出后每百万次收取 $0.36 的操作费用
由上可见价格比现有的存储服务厂商低的多,AWS 的 S3 是不是瑟瑟发抖?
使用体验
Cloudflare R2 Storage 目前还处于公测阶段,很多操作并不能可视化,需要安装 Wrangler ,即 Workers CLI。
R2 有两个 API:一个只能在 Workers 内部访问的 API,我们称之为 In-Worker API,另一个是与 S3 兼容的 API,它通过bucket.account.r2storage.com形式的 URL 公开您的存储桶。在您可以向 R2 发出请求之前,您需要进行身份验证 - R2 存储桶默认情况下是私有的。

可能是因为目前是公测阶段,R2 并不支持互联网的直接访问,也就是访问必须带 Token,官方的教程也是需要通过 Worker 来实现访问的。
这与 S3 最大的不同就是你不能直接访问 R2,目前,你必须通过 SDK 接口操作或者 Worker 服务间接访问 R2 存储,Worker 每个月有十万次免费访问次数,超出后也需要付费。
Cloudflare R2 Storage 不提供互联网的直接访问,这点就让我很难受,如果通过 Worker 去操作,如果请求量稍微大点,还需要为 Worker 每个月付费 $5。
但是,如果你使用 Cloudflare Workers 无服务器,那再配合 R2 简直是如虎添翼。
R2 的革命性
在上面我们了解了 Cloudflare R2 Storage 收费项目,发现了什么?只收取存储费用、操作费用,没有流量费用!是的没有流量费用,这就是 Cloudflare R2 Storage 的革命性,依托带宽联盟,做到了零出口费用!
也就是说对大型文件,R2 可以大幅延长缓存生命周期,同时大大削减出口费用。结合 Cache API 和 Workers,可对内容进行动态缓存,实现全球范围内的低延迟访问。
我的观点
Cloudflare R2 Storage 很可能对 AWS S3 带来极大的影响,但目前 R2 不支持互联网公开访问这个有点不太友好,不过将来可能也会允许公开访问,这样就无需 Worker 了。因为有带宽联盟的存在,如果 R2 不支持互联网直接访问,那么我们很可能直接选择带宽联盟中的成员提供的存储服务,这样也是不收流量费的。
商业用途请联系作者获得授权。
版权声明:本文为博主「任霏」原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接及本声明。
相关推荐
猜你还喜欢这些内容,不妨试试阅读一下评论与留言
以下内容均由网友提交发布,版权与真实性无法查证,请自行辨别。微信订阅号
扫码关注「任霏博客」微信订阅号- 大佬 引入jar包那里的 driver class 怎么选的?
- 我也遇到了这个问题,已经解决了,在此分享一下 1、宿主机也要创建kingbase的用户和用户组,并且要查看一下用户和用户组的ID(这个很重要) 2、把data目录的用户和用户组设置为kingbase 3、先不要把data路径挂载到宿主机上,这时就可以正常启动,启动后进入容器,查看一下容器内的kingbase的用户和用户组ID是多少,和第一步的ID是否一致,如果ID一致,那正常挂载目录就行;如果ID不一致,那就需要修改Dockerfile文件,在构建镜像时,修改容器内的用户和用户组ID,必须和宿主机的保持一致。然后重新构建镜像,就可以正常挂载宿主机目录了 4、其实直接修改宿主机的用户和用户组ID也是可以的,但是容器内的ID一般是1000,但是宿主机的这个ID很可能已经被占用了,无法修改,就只能修改容器内的ID
- 接口已经允许跨域请求,也就是说你可以在你的页面上调用,获取用户的公网 IP。 如果你还需要其他需求,可以提交 Issue 给我。
- V008R003C002B0320 这个对应的jdbc链接驱动你在哪里找到的?我也遇到了这个问题。
- WARNING: max_connections should be less than orequal than 10 (restricted by license) HINT: the value of max_connect is set 10 WARNING: max_connections should be less than orequal than 10 (restricted by license) HINT: the value of max_connect is set 10 kingbase: superuser_reserved_connections must be less than max_connections 我按照文档修改了以后,不知道如何重启。
- 然后把数字都改成 1 再启动。 如何重新启动?
- ksql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.KINGBASE.54321"
- 进入容器查看一下日志,是不是启动失败了,日志文件在:/opt/kingbase/logfile
- ksql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.KINGBASE.54321"?
- 先通过 docker exec -it 容器名/id /bin/bash 进入容器,然后在容器中使用 ksql 客户端进行连接数据库:/opt/kingbase/Server/bin/ksql -U system test
- 免费.ml域名10年委托合同到期被马里共和国收回域名经营权
- 从极狐Gitlab看各种中间件技术选型
- 时隔十年首次收到 Google AdSense 的付款
- ga域名被加蓬共和国从Freenom公司手中收回域名经营权
- Freenom 被 Meta(Facebook) 起诉导致暂停 .tk/.ga/.ml/.cf/.gq 等新域名注册
- 生花妙笔信手来 – 基于 Amazon SageMaker 使用 Grounded-SAM 加速电商广告素材生成 [1]
- github.renfei.net 不再完整代理 Github 页面改为代理指定文件
- 优雅的源代码管理(三):本地优雅的使用 Git Rebase 变基
- 优雅的源代码管理(二):Git 的工作原理
- 优雅的源代码管理(一):版本控制系统 VCS(Version Control System)与软件配置管理 SCM(Software Configuration Management)