您可以生成 API 令牌,作为 Access Key 与现有 S3 兼容 SDK 或 XML API 一起使用。
您必须先购买 R2,才能生成 API 令牌。
创建 API 令牌:
-
在 Cloudflare 仪表板中,前往 R2 object storage(R2 对象存储) 页面。
Go to Overview ↗ -
在 Account Details(账户详情) 部分,选择 API Tokens(API 令牌) 旁的 Manage(管理)。
-
选择创建以下之一:
- Create Account API token(创建账户 API 令牌) - 这些令牌绑定到 Cloudflare 账户本身,可由任何授权系统或用户使用。只有 Super Administrator 角色的用户可以查看或创建它们。这些令牌在手动撤销前保持有效。
- Create User API token(创建用户 API 令牌) - 这些令牌绑定到您的个人 Cloudflare 用户。它们继承您的个人权限,若您的用户从账户中移除则变为非活跃。
-
在 Permissions(权限) 下,为令牌选择权限类型。有关每个选项的信息,请参阅权限。
-
(可选)若选择 Object Read and Write(对象读取和写入) 或 Object Read(对象读取) 权限,可将令牌范围限定为一组存储桶。
-
选择 Create Account API token(创建账户 API 令牌) 或 Create User API token(创建用户 API 令牌)。
令牌成功创建后,查看 Secret Access Key(秘密访问密钥) 和 Access Key ID(访问密钥 ID) 值。这些通常分别称为 Client Secret 和 Client ID。
您还需要在 S3 客户端中将 endpoint 配置为 https://<ACCOUNT_ID>.r2.cloudflarestorage.com。
使用司法管辖区创建的存储桶必须通过特定司法管辖区端点访问:
- 欧洲联盟 (EU):
https://<ACCOUNT_ID>.eu.r2.cloudflarestorage.com - FedRAMP:
https://<ACCOUNT_ID>.fedramp.r2.cloudflarestorage.com
| 权限 | 描述 |
|---|---|
| Admin Read & Write | 允许创建、列出和删除存储桶,编辑存储桶配置,读取、写入和列出对象,以及读写数据目录表和关联元数据。 |
| Admin Read only | 允许列出存储桶和查看存储桶配置,读取和列出对象,以及从数据目录表和关联元数据读取。 |
| Object Read & Write | 允许读取、写入和列出特定存储桶中的对象。 |
| Object Read only | 允许读取和列出特定存储桶中的对象。 |
您可以通过 API 创建 API 令牌,并使用它们生成相应的 Access Key ID 和 Secret Access Key 值。入门请参阅 通过 API 创建 API 令牌。以下是 R2 的具体说明。
Access Policy 指定令牌可以访问的资源及其权限。
R2 有两种相关资源类型:Account 和 Bucket。有关 Account 资源类型的更多信息,请参阅 Account。
包含一组 R2 存储桶或账户中的所有存储桶。
特定存储桶表示为:
"com.cloudflare.edge.r2.bucket.<ACCOUNT_ID>_<JURISDICTION>_<BUCKET_NAME>": "*"ACCOUNT_ID:请参阅 查找 zone 和 account ID。JURISDICTION:R2 存储桶所在的司法管辖区。未在特定司法管辖区创建的存储桶此值为default。BUCKET_NAME:Access Policy 适用的存储桶名称。
账户中所有存储桶表示为:
"com.cloudflare.api.account.<ACCOUNT_ID>": {
"com.cloudflare.edge.r2.bucket.*": "*"
}ACCOUNT_ID:请参阅 查找 zone 和 account ID。
确定应应用哪些权限组。
权限组 | 资源 | 描述 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Workers R2 Storage Write | Account | 可以创建、删除和列出存储桶,编辑存储桶配置,以及 读取、写入和列出对象。 | ||||||||||||
Workers R2 Storage Read | Account | 可以列出存储桶和查看存储桶配置,以及读取和列出 对象。 | ||||||||||||
Workers R2 Storage Bucket Item Write | Bucket | 可以读取、写入和列出存储桶中的对象。 | ||||||||||||
Workers R2 Storage Bucket Item Read | Bucket | 可以读取和列出存储桶中的对象。 | ||||||||||||
Workers R2 Data Catalog Write | Account | 可以读写数据目录。此权限允许 访问 Iceberg REST catalog 接口。 | ||||||||||||
Workers R2 Data Catalog Read | Account | 可以读取数据目录。此权限允许只读 访问 Iceberg REST catalog 接口。 |
[
{
"id": "f267e341f3dd4697bd3b9f71dd96247f",
"effect": "allow",
"resources": {
"com.cloudflare.edge.r2.bucket.4793d734c0b8e484dfc37ec392b5fa8a_default_my-bucket": "*",
"com.cloudflare.edge.r2.bucket.4793d734c0b8e484dfc37ec392b5fa8a_eu_my-eu-bucket": "*"
},
"permission_groups": [
{
"id": "6a018a9f2fc74eb6b293b0c548f38b39",
"name": "Workers R2 Storage Bucket Item Read"
}
]
}
]您可以从 Create Token API 的响应中获取 Access Key ID 和 Secret Access Key 值:
- Access Key ID:API 令牌的
id。 - Secret Access Key:API 令牌
value的 SHA-256 哈希。
包含 JavaScript、Python 和 Go 示例的教程请参阅 使用 auth token 对 R2 API 进行身份验证。
要签发从 API 令牌派生的短期、范围限定凭据,请使用临时凭据。R2 支持通过 Temporary Credentials API 生成,或通过使用父令牌 secret access key 签署 JWT 在本地生成。