静的ウェブサイトのホスティング

このチュートリアルでは、所有するドメインの静的ウェブサイトをホストするように Cloud Storage バケットを構成します。静的ウェブページには HTML、CSS、JavaScript などのクライアント側の技術を使用できます。PHP のようなサーバー側のスクリプトなどの動的コンテンツを含めることはできません。設定例やヒントなど、静的ウェブページの詳細については、静的ウェブサイト ページをご覧ください。

このチュートリアルは、動的ウェブサイトの静的アセットのホストにも適用されます。

目標

このチュートリアルの内容は次のとおりです。

  • CNAME レコードを使用して、ドメインを Cloud Storage に指定する。
  • ドメインにリンクするバケットを作成する。
  • サイトのファイルをアップロードして共有する。
  • ウェブサイトをテストする。

料金

このチュートリアルでは、Cloud Platform の課金可能な次のコンポーネントを使用します。

  • Cloud Storage

静的ウェブサイトのホスティングで発生する可能性がある料金の詳細については、ストレージ料金のモニタリングに関するヒントをご覧ください。Cloud Storage のコストの詳細については、料金ページをご覧ください。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. Google Cloud Platform プロジェクトを選択または作成します。

    [リソースの管理] ページに移動

  3. Google Cloud Platform プロジェクトに対して課金が有効になっていることを確認します。

    課金を有効にする方法について

  4. 自分がオーナーまたは管理者になっているドメインが必要です。ドメインをまだお持ちでない場合は、Google Domains など、新しいドメインを登録できるサービスが数多くあります。

    このチュートリアルでは、ドメイン example.com を使用します。

  5. 自分が使用するドメインのオーナーまたは管理者になっていることを確認します。example.com などのサブドメインではなく、www.example.com などのトップレベル ドメインを検証していることを確認します。

    注: バケットに関連付けているドメインを所有している場合は、以前にこの手順をすでに実行している可能性があります。Google Domains でドメインを購入した場合、確認は自動的に行われます。

CNAME レコードの作成

CNAME レコードは、DNS レコードの一種です。これは、ドメインからの URL をリクエストするトラフィックを、配信するリソース(この場合は Cloud Storage バケットのオブジェクト)に振り向けます。www.example.com の場合、CNAME レコードには次の情報が含まれている場合があります。

NAME                  TYPE     DATA
www.example.com       CNAME    c.storage.googleapis.com.

CNAME リダイレクトの詳細については、CNAME エイリアス設定の URI をご覧ください。

ドメインを Cloud Storage に接続するには、次の手順を行います。

  1. CNAME を指す c.storage.googleapis.com. レコードを作成します。

    ドメイン登録サービスでは、CNAME レコードの追加など、ドメインを管理する方法が必要です。たとえば、Google Domains を使用する場合は、[Google Domains ヘルプ] ページCNAME レコードの追加手順を確認できます。

バケットの作成

ドメインに作成した CNAME に一致する名前のバケットを作成します。

たとえば、www.example.comc.storage.googleapis.com. を指す CNAME レコードを追加した場合は、"www.example.com" という名前のバケットを作成します。

バケットを作成するには:

Console

  1. Google Cloud Platform Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く
  2. [バケットを作成] をクリックします。

  3. [バケットの作成] ダイアログで、以下を指定します。

    • バケットの [名前]。

    • バケットのストレージ クラス: Multi-Regional

    • バケットの [ロケーション]: [米国]。

  4. [作成] をクリックします。

成功した場合、バケットのページに移動し、「このバケットにはオブジェクトがありません」というテキストが表示されます。

gsutil

gsutil mb コマンドを使用します。

gsutil mb gs://www.example.com

成功した場合、次の内容が返されます。

Creating gs://www.example.com/...

コードサンプル

C++

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

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name) {
  StatusOr<gcs::BucketMetadata> bucket_metadata =
      client.CreateBucket(bucket_name, gcs::BucketMetadata());

  if (!bucket_metadata) {
    throw std::runtime_error(bucket_metadata.status().message());
  }

  std::cout << "Bucket " << bucket_metadata->name() << " created."
            << "\nFull Metadata: " << *bucket_metadata << "\n";
}

C#

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

private void CreateBucket(string bucketName)
{
    var storage = StorageClient.Create();
    storage.CreateBucket(s_projectId, bucketName);
    Console.WriteLine($"Created {bucketName}.");
}

Go

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

bucket := client.Bucket(bucketName)
if err := bucket.Create(ctx, projectID, &storage.BucketAttrs{
	StorageClass: "COLDLINE",
	Location:     "asia",
}); err != nil {
	return err
}

Java

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

Bucket bucket =
    storage.create(
        BucketInfo.newBuilder(bucketName)
            // See here for possible values: http://g.co/cloud/storage/docs/storage-classes
            .setStorageClass(StorageClass.COLDLINE)
            // Possible values: http://g.co/cloud/storage/docs/bucket-locations#location-mr
            .setLocation("asia")
            .build());

Node.js

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

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

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

/**
 * TODO(developer): Uncomment the following line before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';

// Creates a new bucket in the Asia region with the coldline default storage
// class. Leave the second argument blank for default settings.
//
// For default values see: https://cloud.google.com/storage/docs/locations and
// https://cloud.google.com/storage/docs/storage-classes
await storage.createBucket(bucketName, {
  location: 'ASIA',
  storageClass: 'COLDLINE',
});

console.log(`Bucket ${bucketName} created.`);

PHP

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

use Google\Cloud\Storage\StorageClient;

/**
 * Create a Cloud Storage Bucket.
 *
 * @param string $bucketName name of the bucket to create.
 * @param string $options options for the new bucket.
 *
 * @return Google\Cloud\Storage\Bucket the newly created bucket.
 */
function create_bucket($bucketName, $options = [])
{
    $storage = new StorageClient();
    $bucket = $storage->createBucket($bucketName, $options);
    printf('Bucket created: %s' . PHP_EOL, $bucket->name());
}

Python

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

def create_bucket(bucket_name):
    """Creates a new bucket."""
    storage_client = storage.Client()
    bucket = storage_client.create_bucket(bucket_name)
    print('Bucket {} created'.format(bucket.name))

Ruby

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

# project_id    = "Your Google Cloud project ID"
# bucket_name   = "Name of Google Cloud Storage bucket to create"
# location      = "Location of where to create Cloud Storage bucket"
# storage_class = "Storage class of Cloud Storage bucket"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new project_id: project_id
bucket  = storage.create_bucket bucket_name,
                                location:      location,
                                storage_class: storage_class

puts "Created bucket #{bucket.name} in #{location}" +
     " with #{storage_class} class"

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. .json ファイルを作成して name プロパティをウェブサイトの名前に割り当てます。
  3. {
    "name": "www.example.com"
    }
  4. cURL を使用して、JSON API を呼び出します。www.example.com の場合は次のとおりです。
    curl -X POST --data-binary @website-bucket-name.json \
     -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \
     -H "Content-Type: application/json" \
     "https://www.googleapis.com/storage/v1/b?project=my-static-website"

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して XML API を呼び出し、ウェブサイト名でバケットを作成します。www.example.com の場合は次のとおりです。
    curl -X PUT \
     -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \
     -H "x-goog-project-id: my-static-website" \
     "https://storage.googleapis.com/www.example.com"

サイトのファイルのアップロード

ウェブサイトで配信するファイルをバケットに追加するには:

Console

  1. Google Cloud Platform Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く
  2. バケットのリストで、作成したバケットをクリックします。

  3. [オブジェクト] タブの [ファイルをアップロード] ボタンをクリックします。

  4. ファイル ダイアログで、目的のファイルを参照して選択します。

アップロードの完了後、バケット内のファイルの名前、サイズ、種類、最終更新日が表示されます。

たとえば、index.html404.html の 2 つのファイルがあるバケットの場合、GCP Console で次のように表示されます。

バケットのウェブサイト例
ウェブサイトとして構成されたバケットの例。

gsutil

ファイルをバケットにコピーするには、gsutil cp コマンドを使用します。たとえば、ファイル index.html をその現在の場所 Desktop からコピーするには、次のコマンドを使用します。

gsutil cp Desktop/index.html gs://www.example.com

成功した場合、次の内容が返されます。

Copying file://Desktop/index.html [Content-Type=text/html]...
Uploading   gs://www.example.com/index.html:       0 B/2.58 KiB
Uploading   gs://www.example.com/index.html:       2.58 KiB/2.58 KiB

コードサンプル

C++

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

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string file_name, std::string bucket_name,
   std::string object_name) {
  // Note that the client library automatically computes a hash on the
  // client-side to verify data integrity during transmission.
  StatusOr<gcs::ObjectMetadata> object_metadata = client.UploadFile(
      file_name, bucket_name, object_name, gcs::IfGenerationMatch(0));

  if (!object_metadata) {
    throw std::runtime_error(object_metadata.status().message());
  }

  std::cout << "Uploaded " << file_name << " to object "
            << object_metadata->name() << " in bucket "
            << object_metadata->bucket()
            << "\nFull metadata: " << *object_metadata << "\n";
}

C#

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

private void UploadFile(string bucketName, string localPath,
    string objectName = null)
{
    var storage = StorageClient.Create();
    using (var f = File.OpenRead(localPath))
    {
        objectName = objectName ?? Path.GetFileName(localPath);
        storage.UploadObject(bucketName, objectName, null, f);
        Console.WriteLine($"Uploaded {objectName}.");
    }
}

Go

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

f, err := os.Open("notes.txt")
if err != nil {
	return err
}
defer f.Close()

wc := client.Bucket(bucket).Object(object).NewWriter(ctx)
if _, err = io.Copy(wc, f); err != nil {
	return err
}
if err := wc.Close(); err != nil {
	return err
}

Java

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

Storage storage = StorageOptions.getDefaultInstance().getService();
BlobId blobId = BlobId.of("bucket", "blob_name");
BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("text/plain").build();
Blob blob = storage.create(blobInfo, "Hello, Cloud Storage!".getBytes(UTF_8));

Node.js

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

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

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

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';
// const filename = 'Local file to upload, e.g. ./local/path/to/file.txt';

// Uploads a local file to the bucket
await storage.bucket(bucketName).upload(filename, {
  // Support for HTTP requests made with `Accept-Encoding: gzip`
  gzip: true,
  // By setting the option `destination`, you can change the name of the
  // object you are uploading to a bucket.
  metadata: {
    // Enable long-lived HTTP caching headers
    // Use only if the contents of the file will never change
    // (If the contents will change, use cacheControl: 'no-cache')
    cacheControl: 'public, max-age=31536000',
  },
});

console.log(`${filename} uploaded to ${bucketName}.`);

PHP

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

use Google\Cloud\Storage\StorageClient;

/**
 * Upload a file.
 *
 * @param string $bucketName the name of your Google Cloud bucket.
 * @param string $objectName the name of the object.
 * @param string $source the path to the file to upload.
 *
 * @return Psr\Http\Message\StreamInterface
 */
function upload_object($bucketName, $objectName, $source)
{
    $storage = new StorageClient();
    $file = fopen($source, 'r');
    $bucket = $storage->bucket($bucketName);
    $object = $bucket->upload($file, [
        'name' => $objectName
    ]);
    printf('Uploaded %s to gs://%s/%s' . PHP_EOL, basename($source), $bucketName, $objectName);
}

Python

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

オブジェクトをアップロードするには、Blob.upload_from_file()Blob.upload_from_filename()Blob.upload_from_string() のいずれかのメソッドを使用します。
def upload_blob(bucket_name, source_file_name, destination_blob_name):
    """Uploads a file to the bucket."""
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    blob = bucket.blob(destination_blob_name)

    blob.upload_from_filename(source_file_name)

    print('File {} uploaded to {}.'.format(
        source_file_name,
        destination_blob_name))

Ruby

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

# project_id        = "Your Google Cloud project ID"
# bucket_name       = "Your Google Cloud Storage bucket name"
# local_file_path   = "Path to local file to upload"
# storage_file_path = "Path to store the file in Google Cloud Storage"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new project_id: project_id
bucket  = storage.bucket bucket_name

file = bucket.create_file local_file_path, storage_file_path

puts "Uploaded #{file.name}"

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. ファイルデータをリクエストの本文に追加します。
  3. cURL を使用して、POST Object リクエストで JSON API を呼び出します。www.example.com のインデックス ページの場合は次のとおりです。
    curl -X POST --data-binary @index.html \
        -H "Content-Type: text/html" \
        -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \
        "https://www.googleapis.com/upload/storage/v1/b/www.example.com/o?uploadType=media&name=index.html"

JSON API を使用したオブジェクトのアップロードの詳細については、単純なアップロードの実行をご覧ください。

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. オブジェクトのデータをリクエストの本文に追加します。
  3. cURL を使用して、PUT Object リクエストで XML API を呼び出します。www.example.com のインデックス ページの場合は次のとおりです。
    curl -X PUT --data-binary @index.html \
        -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \
        -H "Content-Type: text/html" \
        "https://storage.googleapis.com/www.example.com/index.html"

ファイルの共有

バケット内のすべてのファイルを一般公開したり、ウェブサイトから個々のオブジェクトにアクセスできるように設定したりできます。一般に、バケット内のすべてのファイルにアクセスできるようにする方が簡単で迅速です。

個々のファイルのアクセシビリティを制御する場合、今後バケットにアップロードされるファイルがデフォルトで共有されるように、バケットのデフォルト オブジェクト ACL を設定できます。

推奨: 特殊ページの割り当て

インデックス ページの接尾辞やカスタム エラーページを割り当てることができます。インデックス ページの接尾辞は MainPageSuffix プロパティで、カスタム エラーページは NotFoundPage プロパティで制御します。どちらの割り当ても任意ですが、インデックス ページがないと、ユーザーがトップレベル サイトにアクセスしたときに何も表示されません(例: http://www.example.com)。

インデックス ページ

インデックス ページ(ウェブサーバー ディレクトリ インデックスともいいます)は、訪問者が関連ファイルのない URL をリクエストしたときに返されるファイルです。MainPageSuffix を割り当てると、Cloud Storage は、訪問者からリクエストされた URL と名前の接頭辞が一致するファイルを探します。

たとえば、静的ウェブサイトの MainPageSuffixindex.html に設定したとします。また、バケット www.example.comdirectory という名前のファイルがないとします。このような状況でユーザーが URL http://www.example.com/directory をリクエストすると、Cloud Storage はファイル www.example.com/directory/index.html を提供しようとします。このファイルも存在しない場合、Cloud Storage はエラーページを返します。

MainPageSuffix は、ユーザーがトップレベルのサイトをリクエストした場合に提供されるファイルも制御します。上の例の場合、ユーザーが http://www.example.com をリクエストすると、Cloud Storage はファイル www.example.com/index.html を提供しようとします。

エラー ページ

エラーページは、既存のファイルに対応しない URL をリクエストした静的サイトの訪問者に返されるファイルです。MainPageSuffix を割り当てた場合、リクエストされた名前のファイルがなく、該当するインデックス ページもない場合にのみ、Cloud Storage はエラーページを返します。

エラーページを返す場合、http レスポンス コードは 404 になります。エラーページとして機能するファイルを制御するプロパティは NotFoundPage です。NotFoundPage を設定しない場合、ユーザーに一般的なエラーページが表示されます。

MainPageSuffixNotFoundPage の設定

次のサンプルでは、MainPageSuffixindex.html に設定し、NotFoundPage404.html に設定します。

Console

  1. Google Cloud Platform Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く
  2. バケットのリストで、作成したバケットを見つけます。

  3. バケットの横にあるその他の操作アイコン その他アイコン をクリックし、[ウェブサイトの構成を編集] を選択します。

  4. [ウェブサイトの構成] ダイアログで、[メインページ] と [404(ページが見つかりません)ページ] を指定します。

  5. [保存] をクリックします。

gsutil

gsutil web set コマンドを使用して、MainPageSuffix プロパティを -m フラグで設定し、NotFoundPage-e フラグで設定します。

gsutil web set -m index.html -e 404.html gs://www.example.com

成功した場合、次の内容が返されます。

Setting website config on gs://www.example.com/...

REST API

JSON API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. .json ファイルを作成して、website オブジェクトの mainPageSuffix プロパティと notFoundPage プロパティを目的のページに設定します。
    {
    "website":{
    "mainPageSuffix": "index.html",
    "notFoundPage": "404.html"
    }
    }
  3. cURL を使用して、PATCH Bucket リクエストで JSON API を呼び出します。www.example.com の場合は次のとおりです。
    curl -X PATCH --data-binary @web-config.json \
     -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \
     -H "Content-Type: application/json" \
     "https://www.googleapis.com/storage/v1/b/www.example.com"

XML API

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. .xml ファイルを作成して、WebsiteConfiguration 要素の MainPageSuffix 要素と NotFoundPage 要素を目的のページに設定します。
    <WebsiteConfiguration>
    <MainPageSuffix>index.html</MainPageSuffix>
    <NotFoundPage>404.html</NotFoundPage>
    </WebsiteConfiguration>
  3. cURL を使用して、PUT Bucket リクエストと websiteConfig クエリ文字列パラメータで XML API を呼び出します。www.example.com の場合は次のとおりです。
    curl -X PUT --data-binary @web-config.xml \
        -H "Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg" \
        https://storage.googleapis.com/www.example.com?websiteConfig

ウェブサイトのテスト

ブラウザでドメイン名をリクエストして、コンテンツがバケットから配信されていることを確認します。確認するときに、オブジェクトのパスを指定します。MainPageSuffix プロパティを設定している場合は、ドメイン名だけで実行できます。

たとえば、www.example.com という名前のバケットに test.html という名前のオブジェクトを保存している場合、ブラウザで www.example.com/test.html にアクセスしてアクセス可能かどうかを確認します。

クリーンアップ

静的ウェブサイトのホスティングのチュートリアルが終了したら、GCP で作成したリソースをクリーンアップして、今後料金が発生しないようにします。次のセクションで、このようなリソースを削除または無効にする方法を説明します。

プロジェクトの削除

課金を停止する最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。

プロジェクトを削除するには:

  1. GCP Console で [プロジェクト] ページに移動します。

    プロジェクト ページに移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

バケットの削除

プロジェクト全体を削除する場合は、ウェブサイトのホストに使用したバケットを削除します。

Console

  1. Google Cloud Platform Console で Cloud Storage ブラウザを開きます。
    Cloud Storage ブラウザを開く
  2. 削除するバケットのチェックボックスをオンにします。

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

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

gsutil

バケットとその内容を削除するには、gsutil rm コマンドに -r フラグを付けて実行します。

gsutil rm -r gs://www.example.com

次の例のようなレスポンスになります。

Removing gs://www.example.com/...

コードサンプル

C++

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

namespace gcs = google::cloud::storage;
[](gcs::Client client, std::string 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 のリファレンス ドキュメントをご覧ください。

private void DeleteBucket(string bucketName)
{
    var storage = StorageClient.Create();
    storage.DeleteBucket(bucketName);
    Console.WriteLine($"Deleted {bucketName}.");
}

Go

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

if err := client.Bucket(bucketName).Delete(ctx); err != nil {
	return err
}

Java

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

boolean deleted = bucket.delete(BucketSourceOption.metagenerationMatch());
if (deleted) {
  // the bucket was deleted
} else {
  // the bucket was not found
}

Node.js

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

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

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

/**
 * TODO(developer): Uncomment the following line before running the sample.
 */
// const bucketName = 'Name of a bucket, e.g. my-bucket';

// Deletes the bucket
await storage.bucket(bucketName).delete();

console.log(`Bucket ${bucketName} deleted.`);

PHP

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

use Google\Cloud\Storage\StorageClient;

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

Python

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

def delete_bucket(bucket_name):
    """Deletes a bucket. The bucket must be empty."""
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    bucket.delete()
    print('Bucket {} deleted'.format(bucket.name))

Ruby

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

# project_id  = "Your Google Cloud project ID"
# bucket_name = "Name of your Google Cloud Storage bucket to delete"

require "google/cloud/storage"

storage = Google::Cloud::Storage.new project_id: project_id
bucket  = storage.bucket bucket_name

bucket.delete

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

REST API

JSON API

空でないバケットは削除できないことに注意してください。

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して JSON API を呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X DELETE -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/www.example.com"

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

詳しくは、Buckets: delete の JSON リファレンス ページをご覧ください。

XML API

空でないバケットは削除できないことに注意してください。

  1. OAuth 2.0 Playground から承認アクセス トークンを取得します。固有の OAuth 認証情報を使用するように Playground を構成します。
  2. cURL を使用して XML API を呼び出します。[VALUES_IN_BRACKETS] は適切な値に置き換えます。
    curl -X DELETE -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/www.example.com"

詳細については、バケットの削除の XML リファレンス ページをご覧ください。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。