Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

バケットロック

最終更新 Markdown で表示Agent セットアップ

バケットロックは、指定した期間、または無期限で、R2 バケット内のオブジェクトの削除と上書きを防ぎます。有効にすると、オブジェクトに保持ポリシーが適用され、誤削除や早すぎる削除を防げます。

バケットロックをはじめる

始める前に、次のものが必要です。

  • 既存の R2 バケット。まだない場合は、バケットの作成 を参照してください。
  • (API のみ)R2 バケット設定を編集する 権限 を持つ API トークン。

ダッシュボードでバケットロックを有効にする

  1. Cloudflare ダッシュボードで R2 object storage ページを開きます。

    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"
                }
            }
        ]
    }'

このリクエストは、次の 2 つのルールを作成します。

  • lock-logs-7d: logs/ プレフィックス配下のオブジェクトを 7 日間(604800 秒)保持します。
  • lock-images-indefinite: images/ プレフィックス配下のオブジェクトを無期限でロックします。

R2 バケットのバケットロックルールを確認する

Dashboard

  1. Cloudflare ダッシュボードで R2 object storage ページを開きます。

    Overview を開く ↗
  2. 対象のバケットを選びます。

  3. Settings タブに切り替え、Bucket lock rules カードまでスクロールします。

Wrangler

バケットロックルールを一覧表示するには、r2 bucket lock list コマンド を実行します。

npx wrangler r2 bucket lock list <BUCKET_NAME>

API

必須パラメーターと、バケットロックルールの取得例は、API ドキュメント を参照してください。

R2 バケットからバケットロックルールを削除する

Dashboard

  1. Cloudflare ダッシュボードで R2 object storage ページを開きます。

    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 日の要件を満たすまでオブジェクトは削除されません。
  • バケットロックルールが設定されているあいだは、バケットを空にできません。バケットを空にする 前に、すべてのロックルールを削除してください。ダッシュボードから フォルダーを削除する 場合にも、バケットロックルールは適用されます。

役に立ちましたか?