R2 バケットを削除するには、先にバケット内のオブジェクトをすべて削除します。空になったあとで、バケットを削除できます。
バケットを空にすると、中のオブジェクトはすべて削除されます。バケット自体と設定(ライフサイクルルール、CORS、イベント通知、カスタムドメイン)は残ります。
この操作で削除したオブジェクトは復元できません。バケットに バケットロックルール がある場合は、空にする前にルールを削除します。
バケットを空にする方法はいくつかあります。
ダッシュボードの Empty Bucket 操作は、オブジェクト数に関係なく空にする処理を実行します。大きなバケットではバックグラウンドで動き、すべてのオブジェクトが削除されるまでダッシュボードに進捗が表示されます。
-
Cloudflare ダッシュボードで R2 object storage ページを開きます。
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 ページを開きます。
Overview を開く ↗ -
削除したいバケットを選びます。
-
Settings タブを開きます。
-
Delete Bucket セクションまでスクロールします。バケットが空でない場合は、先に Empty Bucket を選んでオブジェクトをすべて削除します。
-
Delete を選びます。
-
表示されたダイアログで操作を確定します。
空のバケットは r2 bucket delete コマンドで削除します。
npx wrangler r2 bucket delete <BUCKET_NAME>バケットにオブジェクトが残っていると、コマンドは失敗します。このコマンドを実行する前に、バケットを空にします。
空のバケットは バケット削除 API エンドポイント で削除します。
curl -X DELETE "https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/r2/buckets/<BUCKET_NAME>" \
-H "Authorization: Bearer <API_TOKEN>"バケットが 管轄(jurisdiction) にある場合は、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 レコードを残さないよう、削除の前または後にドメインの関連付けを外します。