要删除 R2 存储桶,必须先移除其中所有对象。存储桶清空后即可删除。
清空存储桶会删除其中的每个对象。存储桶本身及其配置(生命周期规则、CORS、事件通知、自定义域名)会保留。
此过程中移除的对象无法恢复。若存储桶配置了存储桶锁定规则,须在清空前移除。
您可以通过多种方式清空存储桶。
仪表板提供 Empty Bucket(清空存储桶) 操作,无论存储桶包含多少对象均可处理。对于大型存储桶,操作在后台运行,仪表板会显示进度直至所有对象被移除。
-
在 Cloudflare 仪表板中,前往 R2 object storage(R2 对象存储) 页面。
Go to Overview ↗ -
选择要清空的存储桶。
-
前往 Settings(设置) 选项卡。
-
滚动至 Empty Bucket(清空存储桶) 部分。
-
选择 Empty(清空)。
-
在出现的对话框中确认操作。
您可以配置对象生命周期规则,使存储桶中所有对象过期。
- 添加无前缀过滤、1 天过期的生命周期规则。
- 等待规则生效。对象通常在 24 小时内被移除,但大型存储桶可能需要更长时间。
- 存储桶清空后,移除生命周期规则。
添加 1 天后过期所有对象的生命周期规则:
npx wrangler r2 bucket lifecycle add <BUCKET_NAME> --expire-days 1存储桶清空后,移除规则:
npx wrangler r2 bucket lifecycle remove <BUCKET_NAME> --id <RULE_ID>完整生命周期命令列表请参阅 Wrangler R2 命令。
您也可使用 S3 API 或仪表板配置生命周期规则。更多信息请参阅 对象生命周期。
您也可以编写脚本,使用 S3 API 或 Workers API 批量列出并删除对象,或使用 rclone 从命令行移除对象。
存储桶清空后,可以永久删除。删除存储桶会移除存储桶及其所有配置,包括生命周期规则、CORS 设置、事件通知和自定义域名。
您可以通过多种方式删除存储桶。
-
在 Cloudflare 仪表板中,前往 R2 object storage(R2 对象存储) 页面。
Go to Overview ↗ -
选择要删除的存储桶。
-
前往 Settings(设置) 选项卡。
-
滚动至 Delete Bucket(删除存储桶) 部分。若存储桶非空,请先选择 Empty Bucket(清空存储桶) 清除所有对象。
-
选择 Delete(删除)。
-
在出现的对话框中确认操作。
使用 r2 bucket delete 命令删除空存储桶:
npx wrangler r2 bucket delete <BUCKET_NAME>若存储桶仍包含对象,命令会失败。运行此命令前须先清空存储桶。
使用 delete bucket API 端点 删除空存储桶:
curl -X DELETE "https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/r2/buckets/<BUCKET_NAME>" \
-H "Authorization: Bearer <API_TOKEN>"若存储桶位于特定司法管辖区,须包含 cf-r2-jurisdiction 请求头:
curl -X DELETE "https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/r2/buckets/<BUCKET_NAME>" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "cf-r2-jurisdiction: eu"- 存储桶必须完全清空才能删除。尝试删除仍包含对象的存储桶会返回错误。
- 配置了存储桶锁定规则的存储桶无法清空。清空前须移除所有锁定规则。
- 存储桶上配置的事件通知在存储桶删除时一并移除。
- 若存储桶使用自定义域名,删除前或删除后移除域名关联,避免 DNS 记录悬空。