跳转到内容
搜索文档

存储桶锁定

最后更新 查看 MarkdownAgent 设置

存储桶锁定可在指定期限内——或无限期——防止 R2 存储桶中的对象被删除和覆盖。启用后,存储桶锁定对对象强制执行保留策略,帮助防止意外或过早删除。

存储桶锁定入门

开始之前,您需要:

  • 现有 R2 存储桶。若尚无 R2 存储桶,请参阅 创建存储桶。
  • (仅 API)具有编辑 R2 存储桶配置权限的 API 令牌。

通过仪表板启用存储桶锁定

  1. 在 Cloudflare 仪表板中,前往 R2 object storage(R2 对象存储) 页面。

    Go to Overview ↗
  2. 选择要添加存储桶锁定规则的存储桶。

  3. 切换到 Settings(设置) 选项卡,向下滚动至 Bucket lock rules(存储桶锁定规则) 卡片。

  4. 选择 Add rule(添加规则),输入规则名称、前缀和保留期。

  5. 选择 Save changes(保存更改)。

通过 Wrangler 启用存储桶锁定

  1. 安装 npm ↗。
  2. 安装 Wrangler(Developer Platform CLI)。
  3. 使用 wrangler login 命令登录 Wrangler。
  4. 运行 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 的请求体一致。

通过 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/ 前缀下的对象无限期锁定。

获取 R2 存储桶的锁定规则

仪表板

  1. 在 Cloudflare 仪表板中,前往 R2 object storage(R2 对象存储) 页面。

    Go to Overview ↗
  2. 选择要查看锁定规则的存储桶。

  3. 切换到 Settings(设置) 选项卡,向下滚动至 Bucket lock rules(存储桶锁定规则) 卡片。

Wrangler

要列出存储桶锁定规则,运行 r2 bucket lock list 命令:

npx wrangler r2 bucket lock list <BUCKET_NAME>

API

有关必需参数及获取锁定规则示例的更多信息,请参阅 API 文档。

从 R2 存储桶移除锁定规则

仪表板

  1. 在 Cloudflare 仪表板中,前往 R2 object storage(R2 对象存储) 页面。

    Go to Overview ↗
  2. 选择要修改的存储桶。

  3. 切换到 Settings(设置) 选项卡,向下滚动至 Bucket lock rules(存储桶锁定规则) 卡片。

  4. 找到要移除的规则,选择其旁的 ... 图标,然后选择 Delete(删除)。

Wrangler

要移除存储桶锁定规则,运行 r2 bucket lock remove 命令:

npx wrangler r2 bucket lock remove <BUCKET_NAME> --id <RULE_ID>

API

要通过 API 移除锁定规则,从更新后的配置中排除相应规则,并使用 put bucket lock configuration API。

存储桶锁定规则

存储桶锁定配置最多可包含 1,000 条规则。每条规则指定覆盖哪些对象(通过前缀)以及对象必须锁定多长时间。您可以:

  • 将对象锁定指定期限。例如 90 天。
  • 将对象保留至特定日期。例如 2026 年 1 月 1 日。
  • 无限期锁定对象。

若多条规则适用于同一前缀或对象键,最严格(最长)的保留要求优先。

说明

  • 无前缀的规则适用于存储桶中所有对象。
  • 规则适用于存储桶中的新对象和现有对象。
  • 存储桶锁定规则优先于生命周期规则。例如,若生命周期规则尝试在 30 天时删除对象,但锁定规则要求保留 90 天,则对象在 90 天要求满足前不会被删除。
  • 配置了任何锁定规则时无法清空存储桶。在清空存储桶前须移除所有锁定规则。从仪表板删除文件夹时也适用锁定规则。

这篇文档对您有帮助吗?