用途:使用 Cloudflare R2 的 S3 兼容对象存储,按规模存取对象。适用文件上传(图片、视频、文档)、AI 资产与模型产物、图片和媒体资源、结构化数据(JSON、CSV、日志)、用户上传下载、静态资源托管、备份归档,以及与现有 S3 工具配合的工作流。
主要能力:创建与列出存储桶;上传 put、下载 get、删除 delete、列表 list、head 获取元数据、createMultipartUpload 分片上传;支持预签名 URL(借助 S3 兼容性);支持 httpMetadata(如 contentType、cacheControl)与 customMetadata;支持 ETag 条件读写;支持 Range 分片下载;大文件(超过 100MB)可用分片上传。
必要用法:先创建桶,命令为 wrangler r2 bucket create my-bucket,可加 --location wnam 指定位置,用 wrangler r2 bucket list 列出。在 wrangler.jsonc 中配置 r2_buckets 绑定(binding 与 bucket_name),并运行 wrangler types 生成类型,如 BUCKET: R2Bucket。基本操作中使用 env.BUCKET.put/get/delete/list/head。使用 AWS SDK 时安装 npm install @aws-sdk/client-s3 @aws-sdk/s3-request-presigner,并添加 nodejs_compat_v2 兼容标志;用 S3Client 指向 https://${env.R2_ACCOUNT_ID}.r2.cloudflarestorage.com,region 为 auto。生成预签名 URL 用 getSignedUrl,可设置 expiresIn(示例中上传 300 秒、下载 3600 秒)。
适用场景与限制:官方说明原生 R2Bucket 绑定比 AWS SDK 更适合基本操作,需要预签名 URL 或已有 S3 工具链时再用 AWS SDK。大文件应使用分片上传;列表需处理分页与截断;对象不存在时 get 返回 null,应处理 404;条件操作用于避免竞态。具体存储上限、速率限制、Workers 集成上限与测试方法见 references/operations.md、references/s3-compat.md、references/limits.md、references/testing.md。资料未提供收费与价格信息。