S3 完整配置 · Cloudflare R2
Cloudflare R2 详细配置
本指南帮助你在 Cloudflare R2 上创建 Bucket、API 令牌与 CORS,并完成虾传对接。
适用场景
- 希望低 egress 费用的 S3 兼容存储。
- 国际或自建 R2 与 ShrimpSend 国际版配合使用。
准备工作
- 登录 Cloudflare Dashboard。
- R2 → Overview,开通 R2(按存储与 Class A/B 操作计费)。
创建 Bucket
- R2 → Create bucket。
- 输入名称(如
shrimpsend-relay)。

创建 API 令牌
- R2 → Manage R2 API Tokens → Create API token。
- 权限选择 Object Read & Write,范围限定到目标 Bucket。
- 保存 Access Key ID 与 Secret Access Key。

在 Bucket Settings → S3 API 中复制 Endpoint,形如:
https://<accountid>.r2.cloudflarestorage.com
配置 CORS
- Bucket → Settings → CORS Policy → Add CORS policy。
- JSON 示例(大陆 Web):
[
{
"AllowedOrigins": ["https://xiachuan.net", "https://www.xiachuan.net"],
"AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
"AllowedHeaders": ["*"],
"ExposeHeaders": ["ETag"],
"MaxAgeSeconds": 86400
}
]

填写虾传设置
| 字段 | 示例 |
|---|---|
| Endpoint | https://<accountid>.r2.cloudflarestorage.com |
| Region | auto(或与控制台一致) |
| Bucket | shrimpsend-relay |
| Path-style | 视 Endpoint 而定,多数 R2 S3 API 可开启 |
| Access Key ID | R2 Access Key |
| Secret Access Key | R2 Secret |


测试连接
R2 无 AWS 式 Region 约束,但 Endpoint 与 Path-style 组合错误会导致签名失败。测试后请实际传文件验证。
常见问题
Region 填什么? 常用 auto;以 R2 S3 兼容文档为准。
403? 检查 API Token 是否绑定正确 Bucket,且含 Write 权限。
与国际内置 R2 区别? 内置 S3 由平台托管;本文为 你自己的 R2 Bucket。