R2 API 与 S3 兼容
R2 兼容 S3 API,因此你可以使用 S3 客户端、AWS CLI 或 curl 操作对象。
S3 端点
R2 的 S3 API 端点格式是:
text
https://你的AccountID.r2.cloudflarestorage.comcurl 示例
上传对象:
bash
curl -X PUT \
"https://你的AccountID.r2.cloudflarestorage.com/cloudflare-learning-lab/hello.txt" \
-H "Authorization: AWS4-HMAC-SHA256 Credential=你的AccessKey/日期/region/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=你的签名"实际项目中通常不会手写签名,而是使用 S3 客户端或 Workers 绑定。
为什么项目里不用 S3 密钥
本项目推荐 Workers 绑定 R2:
ts
env.DEMO_BUCKET.put('hello.txt', 'Hello R2')这样更安全,因为:
- 密钥不会出现在前端代码中。
- 不需要在浏览器里签名。
- Workers 负责权限控制。
- 更容易部署和维护。