バケットロックは、指定した期間、または無期限で、R2 バケット内のオブジェクトの削除と上書きを防ぎます。有効にすると、オブジェクトに保持ポリシーが適用され、誤削除や早すぎる削除を防げます。
始める前に、次のものが必要です。
-
Cloudflare ダッシュボードで R2 object storage ページを開きます。
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"
}
}
]
}'このリクエストは、次の 2 つのルールを作成します。
lock-logs-7d:logs/プレフィックス配下のオブジェクトを 7 日間(604800 秒)保持します。lock-images-indefinite:images/プレフィックス配下のオブジェクトを無期限でロックします。
-
Cloudflare ダッシュボードで R2 object storage ページを開きます。
Overview を開く ↗ -
対象のバケットを選びます。
-
Settings タブに切り替え、Bucket lock rules カードまでスクロールします。
バケットロックルールを一覧表示するには、r2 bucket lock list コマンド を実行します。
npx wrangler r2 bucket lock list <BUCKET_NAME>必須パラメーターと、バケットロックルールの取得例は、API ドキュメント を参照してください。
-
Cloudflare ダッシュボードで R2 object storage ページを開きます。
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 日まで。
- 無期限でロックする。
同じプレフィックスまたはオブジェクトキーに複数のルールが適用される場合は、最も厳しい(最も長い)保持要件が優先されます。
- プレフィックスのないルールは、バケット内のすべてのオブジェクトに適用されます。
- ルールは、バケット内の新規オブジェクトと既存オブジェクトの両方に適用されます。
- バケットロックルールは ライフサイクルルール より優先されます。たとえば、ライフサイクルルールが 30 日でオブジェクトを削除しようとしても、バケットロックルールが 90 日間の保持を求める場合、90 日の要件を満たすまでオブジェクトは削除されません。
- バケットロックルールが設定されているあいだは、バケットを空にできません。バケットを空にする 前に、すべてのロックルールを削除してください。ダッシュボードから フォルダーを削除する 場合にも、バケットロックルールは適用されます。