オブジェクトを削除する

このページでは、Cloud Storage のバケットからオブジェクトを削除する方法を説明します。

必要なロール

オブジェクトの削除に必要な権限を取得するには、削除するオブジェクトを含むバケットに対するストレージ オブジェクト ユーザー(roles/storage.objectUser)の IAM ロールを付与するよう管理者に依頼してください。

このページで説明するタスクを Google Cloud コンソールを使って実施する場合は、Storage オブジェクト ユーザー(roles/storage.objectUser)ロールの代わりにストレージ管理者(roles/storage.admin)のロールを付与するか、Storage オブジェクト ユーザー(roles/storage.objectUser)ロールに加えて基本ロールである閲覧者(roles/viewer)を付与するように管理者に依頼してください。

これらのロールには、オブジェクトの削除に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

  • storage.objects.delete
  • storage.objects.list
    • この権限は、 Google Cloud コンソールを使用する場合、または Google Cloud CLI で --recursive フラグやワイルドカードを使用する場合にのみ必要です。
  • storage.buckets.list
    • この権限は、このページで説明する操作を Google Cloud コンソールで行う場合にのみ必要です。

これらの権限は、他の事前定義ロールカスタムロールを使用して取得することもできます。

バケットに対するロールの付与については、バケットでの IAM ポリシーの設定と管理をご覧ください。

オブジェクトを削除する

いずれかの Cloud Storage バケットからオブジェクトを削除するには、次の手順を行います。

コンソール

  1. Google Cloud コンソールで Cloud Storage の [バケット] ページに移動します。

    [バケット] に移動

  2. バケットのリストで、削除するオブジェクトを含むバケットの名前をクリックします。

    [バケットの詳細] ページが開き、[オブジェクト] タブが選択されています。

  3. フォルダ内にあるオブジェクトに移動します。

  4. 削除する各オブジェクトのチェックボックスをオンにします。

    フォルダのチェックボックスをオンにすると、そのフォルダ内のすべてのオブジェクトが削除されます。

  5. [削除] ボタンをクリックします。

  6. 表示されたダイアログで [削除] をクリックします。

多くのオブジェクトを一度に削除する場合は、 Google Cloud コンソールで通知アイコンをクリックして削除の進捗状況を追跡できます。Google Cloud コンソールでは、最大数百万個のオブジェクトをバックグラウンドで一括削除できます。

失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。

コマンドライン

Google Cloud CLI コマンド gcloud storage rm を使用します。

gcloud storage rm gs://BUCKET_NAME/OBJECT_NAME

ここで

  • BUCKET_NAME は、削除するオブジェクトが格納されているバケットの名前です。例: my-bucket
  • OBJECT_NAME は、削除するオブジェクトの名前です。例: pets/dog.png

正常に終了すると、レスポンスは次の例のようになります。

Removing objects:
Removing gs://example-bucket/file.txt...
  Completed 1/1

クライアント ライブラリ

C++

詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。

Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

namespace gcs = ::google::cloud::storage;
[](gcs::Client client, std::string const& bucket_name,
   std::string const& object_name) {
  google::cloud::Status status =
      client.DeleteObject(bucket_name, object_name);

  if (!status.ok()) throw std::runtime_error(status.message());
  std::cout << "Deleted " << object_name << " in bucket " << bucket_name
            << "\n";
}

C#

詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。

Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。


using Google.Cloud.Storage.V1;
using System;

public class DeleteFileSample
{
    public void DeleteFile(
        string bucketName = "your-unique-bucket-name",
        string objectName = "your-object-name")
    {
        var storage = StorageClient.Create();
        storage.DeleteObject(bucketName, objectName);
        Console.WriteLine($"Deleted {objectName}.");
    }
}

Go

詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。

Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、クライアント ライブラリの認証情報を設定するをご覧ください。

import (
	"context"
	"fmt"
	"io"
	"time"

	"cloud.google.com/go/storage"
)

// deleteFile removes specified object.
func deleteFile(w io.Writer, bucket, object string) error {
	// bucket := "bucket-name"
	// object := "object-name"
	ctx := context.Background()
	client, err := storage.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("storage.NewClient: %w", err)
	}
	defer client.Close()

	ctx, cancel := context.WithTimeout(ctx,