バケットの削除

このページでは、Cloud Storage バケットの削除方法について説明します。

始める前に

Cloud Storage バケットを削除するために必要な権限を取得するには、バケットに対するストレージ管理者(roles/storage.admin)IAM ロールを付与するよう管理者に依頼してください。

この事前定義ロールには、バケットの削除に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

  • storage.buckets.delete
  • storage.buckets.list
    • この権限は、Google Cloud コンソールを使用してバケットを削除する場合にのみ必要です。
  • storage.objects.delete
    • この権限は、削除するバケット内にオブジェクトが存在する場合にのみ必要です。
  • storage.objects.list
    • この権限は、Google Cloud コンソールまたは Google Cloud CLI を使用してバケットを削除する場合にのみ必要です。

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

バケットにロールを付与する手順については、バケットで IAM を使用するをご覧ください。

バケットを削除する

コンソール

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

    [バケット] に移動

  2. 削除するバケットのチェックボックスをオンにします。

  3. [削除] をクリックします。

  4. 上に重なったウィンドウで、バケットとそのコンテンツを削除することを確定します。

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

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

コマンドライン

  • バケット内のすべてのオブジェクトと一緒にバケットを削除するには、--recursive フラグを指定して Google Cloud CLI コマンド gcloud storage rm を使用します。

    gcloud storage rm --recursive gs://BUCKET_NAME

    ここで、BUCKET_NAME は削除するバケットの名前です。例: my-bucket

    成功した場合は、次の例のようなレスポンスになります。

    Removing gs://my-bucket/...
  • バケットにマネージド フォルダが含まれている場合、--recursive フラグを指定して Google Cloud CLI コマンド gcloud alpha storage rm を使用して、すべてのマネージド フォルダとオブジェクトと一緒にバケットを削除できます。

    gcloud alpha storage rm --recursive gs://BUCKET_NAME

    ここで、BUCKET_NAME は削除するバケットの名前です。例: my-bucket

    成功した場合は、次の例のようなレスポンスになります。

    Removing gs://my-bucket/...

オブジェクトまたはマネージド フォルダを誤って削除しないようにするには、コマンドで --recursive フラグを使用しないでください。このフラグを除外すると、このコマンドはバケットが空の場合にのみバケットを削除します。

クライアント ライブラリ

C++

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

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

namespace gcs = ::google::cloud::storage;
[](gcs::Client client, std::string const& bucket_name) {
  google::cloud::Status status = client.DeleteBucket(bucket_name);
  if (!status.ok()) throw std::runtime_error(status.message());

  std::cout << "The bucket " << bucket_name << " was deleted successfully.\n";
}

C#

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

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


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

public class DeleteBucketSample
{
    public void DeleteBucket(string bucketName = "your-unique-bucket-name")
    {
        var storage = StorageClient.Create();
        storage.DeleteBucket(bucketName);
        Console.WriteLine($"The bucket {bucketName} was deleted.");
    }
}

Go

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

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

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

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

// deleteBucket deletes the bucket.
func deleteBucket(w io.Writer, bucketName string) error {
	// bucketName := "bucket-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, time.Second*30)
	defer cancel()

	bucket := client.Bucket(bucketName)
	if err := bucket.Delete(ctx); err != nil {
		return fmt.Errorf("Bucket(%q).Delete: %w", bucketName, err)
	}
	fmt.Fprintf(w, "Bucket %v deleted\n", bucketName)
	return nil
}

Java

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

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

import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

public class DeleteBucket {
  public static void deleteBucket(String projectId, String bucketName) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

    // The ID of the bucket to delete
    // String bucketName = "your-unique-bucket-name";

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    Bucket bucket = storage.get(bucketName);
    bucket.delete();

    System.out.println("Bucket " + bucket.getName() + " was deleted");
  }
}

Node.js

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

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

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// The ID of your GCS bucket
// const bucketName = 'your-unique-bucket-name';

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

async function deleteBucket() {
  await storage.bucket(bucketName).delete();
  console.log(`Bucket ${bucketName} deleted`);
}

deleteBucket().catch(console.error);

PHP

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

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

use Google\Cloud\Storage\StorageClient;

/**
 * Delete a Cloud Storage Bucket.
 *
 * @param string $bucketName The name of your Cloud Storage bucket.
 *        (e.g. 'my-bucket')
 */
function delete_bucket(string $bucketName): void
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $bucket->delete();
    printf('Bucket deleted: %s' . PHP_EOL, $bucket->name());
}

Python

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

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

from google.cloud import storage


def delete_bucket(bucket_name):
    """Deletes a bucket. The bucket must be empty."""
    # bucket_name = "your-bucket-name"

    storage_client = storage.Client()

    bucket = storage_client.get_bucket(bucket_name)
    bucket.delete()

    print(f"Bucket {bucket.name} deleted")

Ruby

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

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

def delete_bucket bucket_name:
  # The ID of your GCS bucket
  # bucket_name = "your-unique-bucket-name"

  require "google/cloud/storage"

  storage = Google::Cloud::Storage.new
  bucket  = storage.bucket bucket_name, skip_lookup: true

  bucket.delete

  puts "Deleted bucket: #{bucket.name}"
end

REST API

JSON API

  1. Authorization ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。

    OAuth 2.0 Playground を使用してアクセス トークンを作成し、Authorization ヘッダーに含めることもできます。

  2. cURL を使用して JSON API を呼び出し、DELETE Bucket リクエストを行います。

    curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME"

    ここで、BUCKET_NAME は削除するバケットの名前です。例: my-bucket

成功すると、レスポンスに 204 ステータス コードが含まれます。

XML API

  1. Authorization ヘッダーのアクセス トークンを生成するには、gcloud CLI のインストールと初期化を行います。

    OAuth 2.0 Playground を使用してアクセス トークンを作成し、Authorization ヘッダーに含めることもできます。

  2. cURL を使用して XML API を呼び出し、DELETE Bucket リクエストを行います。

    curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://storage.googleapis.com/BUCKET_NAME"

    ここで、BUCKET_NAME は削除するバケットの名前です。例: my-bucket

次のステップ