オブジェクトの削除について

不要になったオブジェクトを削除すると、ストレージ費用を削減し、データ保持要件を遵守し、バケットを整理できます。規模と自動化のニーズに応じて、オブジェクトを手動、プログラム、または自動化されたポリシーで削除する方法を選択できます。

このページでは、バケットからオブジェクトを削除する方法について説明し、タスクに適した方法を選択するのに役立ちます。

オブジェクトを削除する方法については、オブジェクトを削除するをご覧ください。

単一オブジェクトの削除

単一オブジェクトの削除では、特定のデータを正確に制御できます。通常、バケットのデータに対して即時かつターゲットを絞った更新を行う必要がある場合は、単一のオブジェクトを削除します。単一のオブジェクトを削除する一般的な理由は次のとおりです。

  • エラーの修正: 誤ってアップロードされたファイルや、誤ったデータを含むファイルを削除する。

  • クリーンアップ: タスクの完了後に、一時ファイルまたはログを手動で削除する。

  • アプリケーション ロジック: プロフィール写真の削除など、アプリケーションでアクションを実行したときにファイルを自動的に削除する。

  • セキュリティとコンプライアンス: 機密情報を削除する際にオブジェクトを削除する。

単一のオブジェクトを削除するツール

バケットから単一のオブジェクトを削除するには、次のいずれかのツールを使用します。各ツールは、オブジェクトごとに個別の DELETE リクエストを送信します。

ツール 説明
Google Cloud コンソール コンソールを使用してオブジェクトを削除します。 Google Cloud
Google Cloud CLI gcloud storage rm コマンドを使用してオブジェクトを削除します。
クライアント ライブラリ C++、C#、Go、Java、Node.js、PHP、Python、Ruby などのサポートされている言語を使用して、プログラムでオブジェクトを削除します。
REST API JSON API と XML REST API を使用してオブジェクトを削除します。

オブジェクトの一括削除

一括削除の方法は、大規模なデータセットに対する高効率のオペレーションを目的として設計されています。一括削除を使用して、ストレージ費用を管理し、バケット間でデータの整備を自動化します。複数のオブジェクトを削除する一般的な理由は次のとおりです。

  • 費用の最適化: オペレーションに不要になった古いログや一時的なビルド アーティファクトなど、大規模なデータセットを削除する。

  • コンプライアンスの自動化: 特定の期間(30 日など)が経過した後にオブジェクトを削除して、データ保持ポリシーを自動的に適用する。

  • バケットの移行または廃止: データの移行時やプロジェクトの終了時に、数百万または数十億のオブジェクトをクリアする。

  • データ パイプラインのクリーンアップ: 最終レポートまたはデータセットが生成された後に、中間処理ファイルを削除する。

オブジェクトを一括削除するツール

オブジェクトを一括削除するには、次のいずれかのツールを使用します。これらの方法は、個々のリクエストと比較して、スループットの向上とオーバーヘッドの削減に最適化されています。

ツール 説明
XML API を使用して複数のオブジェクトを削除する

単一の POST リクエストで最大 1,000 個のオブジェクトを削除するプログラムによる方法。マルチオブジェクト削除 XML API は、Amazon S3 API との相互運用性を実現するように設計されています。そのため、既存の Amazon S3 のツール、ライブラリ、ワークフローを使用して、Cloud Storage のオブジェクトを管理できます。XML API は、両方のプラットフォーム間でデータを移行する場合や、リソースを管理する場合に便利です。

XML API を使用して複数のオブジェクトを削除すると、 Cloud Storage はデータアクセス監査ログを生成します。 これらのログには、リクエスト全体と個々のオブジェクトの削除に関する詳細が含まれます。 データアクセス監査ログを有効にしている場合。詳細については、マルチオブジェクト削除 XML API の監査ログをご覧ください。

マルチオブジェクト削除 XML API には次の制限があります。

  • ガバナンス モードのバイパス: Cloud Storage では、Amazon S3 とは異なり、削除時にガバナンス モードをバイパスすることはできません。Amazon S3 では、ガバナンス タイプでロックされているオブジェクトを削除できます。x-amz-bypass-governance-retention ヘッダーを指定します。Cloud Storage は、データの不変性を確保するために、オブジェクト保持ポリシーを適用します。
  • 削除マーカー: Amazon S3 の削除マーカーは、単一オブジェクトまたは複数オブジェクトの削除で Cloud Storage ではサポートされていません。Cloud Storage で現在のオブジェクト以外のオブジェクトを復元するには、PUT リクエストを使用して、必要なバージョンをライブ オブジェクトにコピーする必要があります。
  • 条件付き削除: Cloud Storage マルチオブジェクト削除 API では、ETagLast-ModifiedSize に基づく条件付き削除はサポートされていません。これらのパラメータを含むリクエストは 400 エラーになります。Cloud Storage で条件付きオペレーションを行う場合は、x-goog-if-generation-matchx-goog-if-metageneration-match などのヘッダーを使用します。
Google Cloud コンソール 削除するオブジェクトが 100 万個までであれば、 Google Cloud コンソールの使用も推奨されます。削除リクエストを開始すると、プロセスはバックグラウンドで行われます。一括削除のステータスを確認するには、コンソールのヘッダーにある [通知]ボタン ()をクリックします。 Google Cloud
ストレージのバッチ オペレーション

マニフェスト ファイルに基づいて削除を実行するフルマネージド サービス。組み込みのトラッキングと再試行により、最大数十億のオブジェクトを削除するのに適しています。

次のことを行う場合は、ストレージのバッチ オペレーションを使用することをおすすめします。

  • 数百万または数十億のオブジェクトを削除する。
  • 組み込みのトラッキング、再試行、エラー処理により信頼性を高める。
  • 個々の API 呼び出しをスクリプト化する場合と比較して、クライアントサイドのオーバーヘッドを削減する。
gcloud storage rm --recursive 共通の接頭辞を共有するすべてのオブジェクトを削除する Google Cloud CLI コマンド。CLI を使用した小規模から中規模の一括タスクに適しています。
オブジェクトのライフサイクル管理 オブジェクトの経過時間やストレージ クラスなど、定義したルールに基づいてオブジェクトを自動的に削除するサーバーサイド機能。バケット内のオブジェクトを一括削除するには、ライフサイクル 構成ルールをバケットに設定します。このルールでは、条件が Age 0 日に設定され、アクションが delete に設定されます。ルールを設定すると、Cloud Storage は非同期で一括削除を実行します。
バッチ リクエスト 特定のクライアント ライブラリを使用する場合、または JSON API を直接使用する場合は、削除リクエストをバッチ処理すると、必要な HTTP 接続の数を削減できます。

削除方法の選択

オブジェクトを削除するツールは、削除する必要があるオブジェクトの数と理由によって異なります。ユースケースに適した方法を選択するには、次のガイダンスを使用します。

  • 1 つまたは少数の特定のオブジェクトを削除する必要がある場合は、 Google Cloud コンソール、gcloud storage rmまたはクライアント ライブラリ や REST API を使用した単一の API 呼び出しを使用します。詳細については、単一のオブジェクトを削除するをご覧ください。
  • 単一の API リクエストで最大 1,000 個のオブジェクトを削除する必要がある場合は、マルチオブジェクト削除 XML API、Amazon S3 CLI、または Boto3 などの S3 互換クライアント ライブラリを使用します。詳細については、オブジェクトを一括削除するをご覧ください。
  • 共通の名前接頭辞を共有する多数のオブジェクトを削除する場合は、gcloud storage rm --recursive コマンドを使用します。詳細については、Google Cloud CLI を使用してオブジェクトを一括削除するをご覧ください。
  • 数百万または数十億のオブジェクトを削除する必要がある場合は、 ストレージのバッチ オペレーション を使用して、信頼性の高い大規模な削除を行います。
  • 特定の条件を満たしたときにオブジェクトを自動的に削除する必要がある場合は、オブジェクトのライフサイクル管理を使用します。

次のステップ