託管靜態網站

本教學課程說明如何設定 Cloud Storage 值區來代管您網域的靜態網站。靜態網頁可能會運用到 HTML、CSS 和 JavaScript 等用戶端技術,且不得包含伺服器端指令碼 (如 PHP) 的動態內容。如需有關靜態網頁的詳細資訊,請參閱靜態網站頁面

本教學課程提供的設定步驟也適用於代管動態網站的靜態資產。

目標

在這個教學課程中,您將進行以下作業:

  • 使用 CNAME 記錄將網域指向 Cloud Storage。
  • 建立連結至您網域的值區。
  • 上傳及分享您網站的檔案。
  • 測試網站。

費用

本教學課程使用以下 Cloud Platform 計費元件:

  • Cloud Storage

請參閱「監控儲存費用小秘訣」,進一步瞭解託管靜態網站時會產生哪些費用;如需 Cloud Storage 費用詳細資訊,請參閱「定價」頁面。

事前準備

  1. 登入您的 Google 帳戶。

    如果您沒有帳戶,請申請新帳戶

  2. 選取或建立 Google Cloud Platform 專案。

    前往「Manage resources」(管理資源) 頁面

  3. 請確認您已啟用 Google Cloud Platform 專案的計費功能。

    瞭解如何啟用計費功能

  4. 有一個由您擁有或管理的網域。如果您目前沒有網域,可以透過許多現有服務 (例如 Google Domains) 來註冊新網域。

    本教學課程使用的網域是 example.com

  5. 驗證您將要使用的網域確實是由您擁有或管理;請務必驗證頂層網域 (如 example.com) 而非子網域 (如 www.example.com)。

    注意:如果您擁有和值區相關聯的網域,先前可能就已經執行過這個步驟。如果您是透過 Google Domains 購買網域,系統會自動進行驗證。

建立 CNAME 記錄

CNAME 記錄是一種 DNS 記錄類型,可以將從您網域要求網址的流量導向要提供的資源,在本例則是指 Cloud Storage 值區內的物件。如果是 www.example.comCNAME 記錄可能包含下列資訊:

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

如需有關 CNAME 重新導向的詳細資訊,請參閱 CNAME 別名的 URI

將網域連線至 Cloud Storage 的方式如下:

  1. 建立指向 c.storage.googleapis.com.CNAME 記錄。

    您的網域註冊服務應該會支援您管理網域 (包括新增 CNAME 記錄)。例如若您使用 Google Domains,新增 CNAME 記錄的操作說明可在 Google Domains 說明資訊頁面找到。

建立值區

建立值區時,名稱應符合您為網域建立的 CNAME

舉例來說,如果您新增了一個將 www.example.com 指向 c.storage.googleapis.com.CNAME 記錄,請建立名稱為「www.example.com」的值區。

建立值區:

主控台

  1. 在 Google Cloud Platform 主控台中開啟 Cloud Storage 瀏覽器。
    開啟 Cloud Storage 瀏覽器
  2. 按一下 [建立 Bucket]。

  3. 在 [建立 Bucket] 對話方塊中指定:

    • 值區的名稱

    • 值區的儲存空間級別,請指定為「多地區」

    • 值區的位置,請指定為「美國」

  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 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  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 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  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"

上傳網站檔案

將您想讓網站提供的檔案新增到值區內:

主控台

  1. 在 Google Cloud Platform 主控台中開啟 Cloud Storage 瀏覽器。
    開啟 Cloud Storage 瀏覽器
  2. 在值區清單中,找到您建立的值區並按一下對應名稱。

  3. 按一下「物件」分頁中的 [上傳檔案] 按鈕。

  4. 在檔案對話方塊中,找出並選取您需要的檔案。

上傳完成後,值區就會顯示檔案名稱、大小、類型及上次修改日期等資訊。

以內含 index.html404.html 這兩個檔案的值區為例,GCP 主控台將顯示如下:

值區網站範例。
將值區設定為網站的例子。

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 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 將檔案資料新增到要求主體。
  3. 透過 POST 物件要求使用 cURL 呼叫 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 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 將物件的資料新增至要求主體。
  3. 透過 PUT 物件 要求使用 cURL 呼叫 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) 時就不會看到任何內容。

索引頁面

索引頁面 (又稱為網路伺服器目錄索引) 是指訪客要求的網址不具任何相關檔案時,您要提供給訪客瀏覽的檔案內容。您指派 MainPageSuffix 時,Cloud Storage 會尋找名稱前置詞與訪客要求的網址相符的檔案。

舉例來說,假設您將靜態網站的 MainPageSuffix 設為 index.html,而且您的值區 www.example.com 中沒有任何名稱為 directory 的檔案。在這種情況下,如果有使用者要求 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 檔案。

錯誤網頁

錯誤網頁是指靜態網站訪客要求的網址沒有相符的現有檔案時,您要傳回的檔案。假使您已經指派 MainPageSuffix,而使用者提出要求時並沒有任何檔案符合要求的名稱,也沒有任何適用索引頁面,Cloud Storage 就只會傳回錯誤網頁。

系統傳回錯誤網頁時,顯示的 http 回應碼是 404。如要控制用哪個檔案來當做錯誤網頁,可以使用 NotFoundPage 資源;如果您未設定 NotFoundPage,使用者會收到一般錯誤網頁。

設定 MainPageSuffixNotFoundPage

在下例中,MainPageSuffix 設為 index.html、而 NotFoundPage 則設為 404.html

主控台

  1. 在 Google Cloud Platform 主控台中開啟 Cloud Storage 瀏覽器。
    開啟 Cloud Storage 瀏覽器
  2. 在值區清單中,找到您建立的值區。

  3. 按一下值區旁邊的「更多動作」圖示 更多動作圖示。,然後選取 [Edit website configuration] (編輯網站設定)

  4. 在「Configure website」(設定網站) 對話方塊中,指定「Main Page」(主網頁) 和「404 (Not Found)」(404 (找不到)) 網頁

  5. 按一下 [Save] (儲存)

gsutil

使用 gsutil web set 指令設定具有 -m 標記的 MainPageSuffix 資源,以及具有 -e 標記的 NotFoundPage 資源:

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 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 建立 .json 檔案,將 website 物件內的 mainPageSuffixnotFoundPage 資源設為需要的網頁:
    {
    "website":{
    "mainPageSuffix": "index.html",
    "notFoundPage": "404.html"
    }
    }
  3. 透過 PATCH 值區要求使用 cURL 呼叫 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 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 建立 .xml 檔案,將 WebsiteConfiguration 元素內的 MainPageSuffixNotFoundPage 元素設為需要的網頁:
    <WebsiteConfiguration>
    <MainPageSuffix>index.html</MainPageSuffix>
    <NotFoundPage>404.html</NotFoundPage>
    </WebsiteConfiguration>
  3. 透過 PUT 值區 要求及 websiteConfig 查詢字串參數使用 cURL 呼叫 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 資源,可以使用物件路徑或單用網域名稱來進行驗證。

舉例來說,假設您有一個名稱為 test.html 的物件儲存在名為 www.example.com 的值區中,您可從瀏覽器前往 www.example.com/test.html,藉此測試能否順利存取。

清除

完成為託管靜態網站的教學課程後,您可以清除在 GCP 上建立的資源,這樣資源就不會占用配額,而您日後也無須為其付費。下列各節將說明如何刪除或停用這些資源。

刪除專案

如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的專案。

刪除專案:

  1. 前往 GCP 主控台的「Projects」(專案) 頁面。

    前往專案頁面

  2. 在專案清單中選取要刪除的專案,然後按一下 [Delete] (刪除)
  3. 在對話方塊中輸入專案 ID,按一下 [Shut down] (關閉) 即可刪除專案。

刪除值區

如果您不想刪除整個專案,可以只將代管您網站的值區刪除。

主控台

  1. 在 Google Cloud Platform 主控台中開啟 Cloud Storage 瀏覽器。
    開啟 Cloud Storage 瀏覽器
  2. 找到您要刪除的值區,並選取旁邊的核取方塊。

  3. 按一下 [Delete] (刪除)。

  4. 在出現的重疊視窗中,確認您要刪除的值區及內容,然後按一下 [Delete] (刪除)

gsutil

使用具有 -r 標記的 gsutil rm 指令來刪除值區及其中的內容:

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 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  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 狀態碼。

詳情請參閱 JSON 參考資料值區:刪除一文。

XML API

請注意,值區必須是空的,您才能予以刪除。

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用您自己的 OAuth 憑證。
  2. 使用 cURL 呼叫 XML API,並將 [VALUES_IN_BRACKETS] 替換為適當的值:
    curl -X DELETE -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/www.example.com"

詳情請參閱「刪除值區」XML 參考資料頁面。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Storage
需要協助嗎?請前往我們的支援網頁