Skip to content
返回云服务

Cloudflare R2 vs AWS S3

两个 S3 兼容对象存储对比:R2(零出口费)vs S3(生态最深、区域最多)。

云服务对比入门

为什么

R2 的招牌特性是零出口费 —— 仅付存储和操作费,数据离开不收费。S3 出口约每 GB 0.09 美元,下载密集负载成本主导。

S3 区域、存储类和集成更多(Lambda、Athena、Macie);R2 与 Workers 集成且类更少。

何时使用

用户生成内容、大文件下载、备份和媒体 —— 出口显著时用 R2。需要特定区域、存储类(Glacier Deep Archive)或 AWS 服务集成(Athena、Lake Formation)时用 S3。

两者结合:S3 归档,R2 热分发。

如何做

1. 在 R2(Cloudflare 仪表板或 wrangler)或 S3(AWS CLI)创建桶。 2. 两者都用 S3 API —— 将任何 S3 SDK 指向 R2 端点并配 R2 凭据。 3. 在 R2 设置自定义域名(免费,通过 Cloudflare)公开访问。 4. S3 公开访问前置 CloudFront 分配。 5. 用生命周期规则分层到低频访问/归档。 ```bash # R2(通过 wrangler) wrangler r2 bucket create mybucket # S3 aws s3 mb s3://mybucket --region us-east-1 # 两者通过 S3 SDK 用不同端点+凭据 ```

示例

1TB 存储 + 1TB 出口/月成本(估算): ```text R2: 1TB * $0.015/GB = $15 存储 + $0 出口 = $15/月 S3: 1TB * $0.023/GB = $23 存储 + 1TB * $0.09 = $90 出口 = $113/月 ``` 出口主导时 R2 便宜约 7.5 倍。纯归档 S3 更便宜(Glacier Deep Archive $0.00099/GB)。 ```ts // S3 兼容客户端两者都可用 import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3"; const r2 = new S3Client({ region: "auto", endpoint: "https://<accountid>.r2.cloudflarestorage.com", credentials: { accessKeyId: R2_KEY, secretAccessKey: R2_SECRET } }); await r2.send(new PutObjectCommand({ Bucket: "mybucket", Key: "file.txt", Body: "hello" })); ```

常见问题

  • ⚠R2 缺少部分 S3 功能(无 Object Lock/WORM、生命周期转换更少)—— 迁移前查 R2 兼容矩阵。
  • ⚠S3 到非 AWS 出口贵 —— 前置 CloudFront 减半,或将热数据移到 R2 零出口。
  • ⚠R2 免费层(10GB 存储、100 万 A 类操作/月)慷慨但操作计数 —— 高频写入可能超限。

最佳实践

  • ✓热、常下载内容(图片、视频、软件下载)用 R2,出口为成本驱动。
  • ✓冷备份(长期、罕访问)用 S3 Glacier Deep Archive —— 纯存储比 R2 便宜。
  • ✓通过 Cloudflare 自定义域名(免费)服务 R2 对象而非 r2.dev URL,获干净 URL 和 CDN 缓存。

常见问题解答

什么是Cloudflare R2 vs AWS S3?它解决什么问题?

两个 S3 兼容对象存储对比:R2(零出口费)vs S3(生态最深、区域最多)。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手Cloudflare R2 vs AWS S3?

两步即可跑通:① 在 R2(Cloudflare 仪表板或 wrangler)或 S3(AWS CLI)创建桶。;② 两者都用 S3 API —— 将任何 S3 SDK 指向 R2 端点并配 R2 凭据。。建议先用免费套餐验证流程,再接入生产环境。

Cloudflare R2 vs AWS S3 最容易踩的坑是什么?

最高频的问题是:R2 缺少部分 S3 功能(无 Object Lock/WORM、生命周期转换更少)—— 迁移前查 R2 兼容矩阵。。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

Cloudflare R2 vs AWS S3 的最佳实践有哪些?

Cloudflare R2 vs AWS S3 的最佳实践包括:热、常下载内容(图片、视频、软件下载)用 R2,出口为成本驱动。;冷备份(长期、罕访问)用 S3 Glacier Deep Archive —— 纯存储比 R2 便宜。;通过 Cloudflare 自定义域名(免费)服务 R2 对象而非 r2.dev URL,获干净 URL 和 CDN 缓存。。其中首条「热、常下载内容(图片、视频、软件下载)用 R2,出口为成本驱动。」应作为团队默认规范写入 IaC 模板。

Cloudflare R2 vs AWS S3 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。Cloudflare R2 vs AWS S3 多数提供免费套餐,先在免费额度内验证再放量。