存储桶锁定可在指定期限内——或无限期——防止 R2 存储桶中的对象被删除和覆盖。启用后,存储桶锁定对对象强制执行保留策略,帮助防止意外或过早删除。
开始之前,您需要:
-
在 Cloudflare 仪表板中,前往 R2 object storage(R2 对象存储) 页面。
Go to Overview ↗ -
选择要添加存储桶锁定规则的存储桶。
-
切换到 Settings(设置) 选项卡,向下滚动至 Bucket lock rules(存储桶锁定规则) 卡片。
-
选择 Add rule(添加规则),输入规则名称、前缀和保留期。
-
选择 Save changes(保存更改)。
- 安装
npm↗。 - 安装 Wrangler(Developer Platform CLI)。
- 使用
wrangler login命令登录 Wrangler。 - 运行
r2 bucket lock add命令为存储桶添加锁定规则。
npx wrangler r2 bucket lock add <BUCKET_NAME> [OPTIONS]或者,可使用 r2 bucket lock set 命令从 JSON 文件设置存储桶的完整锁定配置。
npx wrangler r2 bucket lock set <BUCKET_NAME> --file <FILE_PATH>JSON 文件格式应与 put bucket lock configuration API 的请求体一致。
有关 Cloudflare API 入门信息,请参阅 发起 API 调用。有关必需参数及设置存储桶锁定配置的更多示例,请参阅 API 文档。
以下是设置存储桶锁定配置(规则集合)的示例:
curl -X PUT "https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/r2/buckets/<BUCKET_NAME>/lock" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"rules": [
{
"id": "lock-logs-7d",
"enabled": true,
"prefix": "logs/",
"condition": {
"type": "Age",
"maxAgeSeconds": 604800
}
},
{
"id": "lock-images-indefinite",
"enabled": true,
"prefix": "images/",
"condition": {
"type": "Indefinite"
}
}
]
}'此请求创建两条规则:
lock-logs-7d:logs/前缀下的对象保留 7 天(604800 秒)。lock-images-indefinite:images/前缀下的对象无限期锁定。
-
在 Cloudflare 仪表板中,前往 R2 object storage(R2 对象存储) 页面。
Go to Overview ↗ -
选择要查看锁定规则的存储桶。
-
切换到 Settings(设置) 选项卡,向下滚动至 Bucket lock rules(存储桶锁定规则) 卡片。
要列出存储桶锁定规则,运行 r2 bucket lock list 命令:
npx wrangler r2 bucket lock list <BUCKET_NAME>有关必需参数及获取锁定规则示例的更多信息,请参阅 API 文档。
-
在 Cloudflare 仪表板中,前往 R2 object storage(R2 对象存储) 页面。
Go to Overview ↗ -
选择要修改的存储桶。
-
切换到 Settings(设置) 选项卡,向下滚动至 Bucket lock rules(存储桶锁定规则) 卡片。
-
找到要移除的规则,选择其旁的
...图标,然后选择 Delete(删除)。
要移除存储桶锁定规则,运行 r2 bucket lock remove 命令:
npx wrangler r2 bucket lock remove <BUCKET_NAME> --id <RULE_ID>要通过 API 移除锁定规则,从更新后的配置中排除相应规则,并使用 put bucket lock configuration API。
存储桶锁定配置最多可包含 1,000 条规则。每条规则指定覆盖哪些对象(通过前缀)以及对象必须锁定多长时间。您可以:
- 将对象锁定指定期限。例如 90 天。
- 将对象保留至特定日期。例如 2026 年 1 月 1 日。
- 无限期锁定对象。
若多条规则适用于同一前缀或对象键,最严格(最长)的保留要求优先。