使用值區標籤

本頁面說明如何新增、查看、編輯及移除 Cloud Storage 中值區設定的標籤。如需值區和值區標籤總覽,請參閱重要詞彙

新增值區標籤

主控台

  1. 在 Google Cloud Platform Console 中開啟 Cloud Storage 瀏覽器。
    開啟 Cloud Storage 瀏覽器
  2. 在值區清單中,找出您要套用標籤的值區,然後按一下該值區的 [more options] (更多選項) 按鈕 (垂直排列的三個點)。

  3. 按一下 [Edit labels] (編輯標籤)。

  4. 在顯示的側邊面板中,按一下 [+ Add label] (+ 新增標籤) 按鈕。

  5. 為您的標籤指定 keyvalue

  6. 按一下 [Save] (儲存)。

在「Edit labels」(編輯標籤) 側邊面板中,您還可以編輯現有標籤的「Value」(值)。

gsutil

label ch 指令中使用 -l 旗標。例如:

gsutil label ch -l [KEY_1]:[VALUE_1] gs://[BUCKET_NAME]/

其中

  • [KEY_1] 是標籤的鍵名稱。例如,pet
  • [VALUE_1] 是標籤的值。例如,dog
  • [BUCKET_NAME] 是要套用此標籤的值區名稱。例如,my-bucket

使用多個 -l 旗標在單一指令中新增或編輯多個 key:value 組合。

使用 label set 指令將所有現有標籤替換為新標籤。

程式碼範例

C++

詳情請參閱 Cloud Storage C++ API 參考說明文件

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name, std::string label_key,
   std::string label_value) {
  StatusOr<gcs::BucketMetadata> updated_metadata = client.PatchBucket(
      bucket_name,
      gcs::BucketMetadataPatchBuilder().SetLabel(label_key, label_value));

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

  std::cout << "Successfully set label " << label_key << " to " << label_value
            << " on bucket  " << updated_metadata->name() << ".";
  std::cout << " The bucket labels are now:";
  for (auto const& kv : updated_metadata->labels()) {
    std::cout << "\n  " << kv.first << ": " << kv.second;
  }
  std::cout << "\n";
}

PHP

詳情請參閱 Cloud Storage PHP API 參考說明文件

use Google\Cloud\Storage\StorageClient;

/**
 * Adds or updates a bucket label.
 *
 * @param string $bucketName the name of your Cloud Storage bucket.
 * @param string $labelName the name of the label to add.
 * @param string $labelValue the value of the label to add.
 */
function add_bucket_label($bucketName, $labelName, $labelValue)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $newLabels = [$labelName => $labelValue];
    $bucket->update(['labels' => $newLabels]);
    printf('Added label %s (%s) to %s' . PHP_EOL, $labelName, $labelValue, $bucketName);
}

Python

詳情請參閱 Cloud Storage Python API 參考說明文件

def add_bucket_label(bucket_name):
    """Add a label to a bucket."""
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)

    labels = bucket.labels
    labels['example'] = 'label'
    bucket.labels = labels
    bucket.patch()

    print('Updated labels on {}.'.format(bucket.name))
    pprint.pprint(bucket.labels)

Ruby

詳情請參閱 Cloud Storage Ruby API 參考說明文件

# project_id  = "Your Google Cloud project ID"
# bucket_name = "Name of your Google Cloud Storage bucket"
# label_key   = "Cloud Storage bucket Label Key"
# label_value = "Cloud Storage bucket Label Value"

require "google/cloud/storage"

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

bucket.update do |bucket|
  bucket.labels[label_key] = label_value
end

puts "Added label #{label_key} with value #{label_value} to #{bucket_name}"

REST API

JSON API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用自己的 OAuth 憑證。
  2. 建立包含下列資訊的 .json 檔案:

    {
      "labels": {
        "[KEY_1]": "[VALUE_1]"
      }
    }

    其中

    • [KEY_1] 是標籤的鍵名稱。例如,pet
    • [VALUE_1] 是標籤的值。例如,dog
  3. 使用 cURL 來透過 PATCH 值區要求呼叫 JSON API

    curl -X PATCH --data-binary @[JSON_FILE_NAME].json \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "Content-Type: application/json" \
      "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=labels"

    其中:

    • [JSON_FILE_NAME] 是您在步驟 2 建立的 JSON 檔案的名稱。
    • [OAUTH2_TOKEN] 是您在步驟 1 產生的存取憑證。
    • [BUCKET_NAME] 是要套用此標籤的值區名稱。例如,my-bucket

您可以在單一要求中新增或編輯多個 key:value 組合。

XML API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用自己的 OAuth 憑證。
  2. 建立包含下列資訊的 .xml 檔案:

    <Tagging>
      <TagSet>
        <Tag>
          <Key>[KEY_1]</Key>
          <Value>[VALUE_1]</Value>
        </Tag>
      </TagSet>
    </Tagging>

    其中:

    • [KEY_1] 是標籤的鍵名稱。例如,pet
    • [VALUE_1] 是標籤的值。例如,dog

    請注意,您可以在單一要求中新增多個 <Tag> 元素。

  3. 使用 cURL 透過 PUT 值區要求和 tagging 查詢字串參數來呼叫 XML API

    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      "https://storage.googleapis.com/[BUCKET_NAME]?tagging"

    其中:

    • [XML_FILE_NAME] 是您在步驟 2 建立的 XML 檔案。
    • [OAUTH2_TOKEN] 是您在步驟 1 產生的存取憑證。
    • [BUCKET_NAME] 是要套用此標籤的值區名稱。例如,my-bucket

查看值區標籤

主控台

  1. 在 Google Cloud Platform Console 中開啟 Cloud Storage 瀏覽器。
    開啟 Cloud Storage 瀏覽器
  2. 在值區清單中,找出您要驗證的值區,然後檢查該值區的「Label」(標籤) 值。

    驗證值區標籤。

gsutil

使用下列 gsutil ls 指令:

gsutil ls -L -b gs://[BUCKET_NAME]/

其中:

  • [BUCKET_NAME] 是您要查看其標籤的值區。例如,my-bucket

回應類似下列範例:

gs://[BUCKET_NAME]/ :
  Storage class:         STANDARD
  ...
  ...
  Labels:
    {
      "your_label_key": "your_label_value"
    }
  ...

程式碼範例

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.GetBucketMetadata(bucket_name, gcs::Fields("labels"));

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

  if (bucket_metadata->labels().empty()) {
    std::cout << "The bucket " << bucket_name << " has no labels set.\n";
    return;
  }

  std::cout << "The labels for bucket " << bucket_name << " are:";
  for (auto const& kv : bucket_metadata->labels()) {
    std::cout << "\n  " << kv.first << ": " << kv.second;
  }
  std::cout << "\n";
}

PHP

詳情請參閱 Cloud Storage PHP API 參考說明文件

use Google\Cloud\Storage\StorageClient;

/**
 * Prints a list of a bucket's lables.
 *
 * @param string $bucketName the name of your Cloud Storage bucket.
 */
function get_bucket_labels($bucketName)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $info = $bucket->info();
    if (isset($info['labels'])) {
        foreach ($info['labels'] as $labelKey => $labelValue) {
            printf('%s: %s' . PHP_EOL, $labelKey, $labelValue);
        }
    }
}

Python

詳情請參閱 Cloud Storage Python API 參考說明文件

def get_bucket_labels(bucket_name):
    """Prints out a bucket's labels."""
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    labels = bucket.labels
    pprint.pprint(labels)

Ruby

詳情請參閱 Cloud Storage Ruby API 參考說明文件

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

require "google/cloud/storage"

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

puts "Labels for #{bucket_name}"
bucket.labels.each do |key, value|
  puts "#{key} = #{value}"
end

REST API

JSON API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用自己的 OAuth 憑證。
  2. 使用 cURL 來透過包含 fields=labels 查詢字串參數的 GET 值區要求呼叫 JSON API

    curl -X GET \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=labels"

    其中:

    • [OAUTH2_TOKEN] 是您在步驟 1 產生的存取憑證。
    • [BUCKET_NAME] 是您要查看其標籤的值區名稱。例如,my-bucket

回應類似下列範例:

{
  "labels" : {
     ([YOUR_LABEL_KEY]): [YOUR_LABEL_VALUE]
   },
}

XML API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用自己的 OAuth 憑證。
  2. 使用 cURL 透過 GET 值區要求和 tagging 查詢字串參數來呼叫 XML API

    curl -X GET \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      "https://storage.googleapis.com/[BUCKET_NAME]?tagging"

    其中:

    • [OAUTH2_TOKEN] 是您在步驟 1 產生的存取憑證。
    • [BUCKET_NAME] 是您要查看其標籤的值區名稱。例如,my-bucket

回應類似下列範例:

<Tagging>
  <TagSet>
    <Tag>
      <Key>[YOUR_LABEL_KEY]</Key>
      <Value>[YOUR_LABEL_VALUE]</Value>
    </Tag>
  </TagSet>
</Tagging>

移除值區標籤

主控台

  1. 在 Google Cloud Platform Console 中開啟 Cloud Storage 瀏覽器。
    開啟 Cloud Storage 瀏覽器
  2. 在值區清單中,找出您要移除其標籤的值區,然後按一下該值區的 [more options] (更多選項) 按鈕 (垂直排列的三個點)。

  3. 按一下 [Edit labels] (編輯標籤)。

  4. 按一下與您要移除的標籤相關聯的 [X]

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

gsutil

label ch 指令中使用 -d 旗標。例如:

gsutil label ch -d [KEY_1] gs://[BUCKET_NAME]/

其中:

  • [KEY_1] 是標籤的鍵名稱。例如,pet
  • [BUCKET_NAME] 是要套用此標籤的值區名稱。例如,my-bucket

使用 label set 指令將所有現有標籤替換為新標籤。

程式碼範例

C++

詳情請參閱 Cloud Storage C++ API 參考說明文件

namespace gcs = google::cloud::storage;
using ::google::cloud::StatusOr;
[](gcs::Client client, std::string bucket_name, std::string label_key) {
  StatusOr<gcs::BucketMetadata> updated_metadata = client.PatchBucket(
      bucket_name, gcs::BucketMetadataPatchBuilder().ResetLabel(label_key));

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

  std::cout << "Successfully reset label " << label_key << " on bucket  "
            << updated_metadata->name() << ".";
  if (updated_metadata->labels().empty()) {
    std::cout << " The bucket now has no labels.\n";
    return;
  }
  std::cout << " The bucket labels are now:";
  for (auto const& kv : updated_metadata->labels()) {
    std::cout << "\n  " << kv.first << ": " << kv.second;
  }
  std::cout << "\n";
}

PHP

詳情請參閱 Cloud Storage PHP API 參考說明文件

use Google\Cloud\Storage\StorageClient;

/**
 * Removes a label from a bucket.
 *
 * @param string $bucketName the name of your Cloud Storage bucket.
 * @param string $labelName the name of the label to remove.
 */
function remove_bucket_label($bucketName, $labelName)
{
    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $labels = [$labelName => null];
    $bucket->update(['labels' => $labels]);
    printf('Removed label %s from %s' . PHP_EOL, $labelName, $bucketName);
}

Python

詳情請參閱 Cloud Storage Python API 參考說明文件

def remove_bucket_label(bucket_name):
    """Remove a label from a bucket."""
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)

    labels = bucket.labels

    if 'example' in labels:
        del labels['example']

    bucket.labels = labels
    bucket.patch()

    print('Removed labels on {}.'.format(bucket.name))
    pprint.pprint(bucket.labels)

Ruby

詳情請參閱 Cloud Storage Ruby API 參考說明文件

# project_id  = "Your Google Cloud project ID"
# bucket_name = "Name of your Google Cloud Storage bucket"
# label_key   = "Cloud Storage bucket Label Key"

require "google/cloud/storage"

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

bucket.update do |bucket|
  bucket.labels[label_key] = nil
end

puts "Deleted label #{label_key} from #{bucket_name}"

REST API

JSON API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用自己的 OAuth 憑證。
  2. 建立包含下列資訊的 .json 檔案:

    {
      "labels": {
        "[KEY_1]": null
      }
    }

    其中:

    • [KEY_1] 是標籤的鍵名稱。例如,pet
  3. 使用 cURL 來透過 PATCH 值區要求呼叫 JSON API

    curl -X PATCH --data-binary @[JSON_FILE_NAME].json \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "Content-Type: application/json" \
      "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=labels"

    其中:

    • [JSON_FILE_NAME] 是您在步驟 2 建立的 JSON 檔案的名稱。
    • [OAUTH2_TOKEN] 是您在步驟 1 產生的存取憑證的名稱。
    • [BUCKET_NAME] 是要套用此標籤的值區名稱。例如,my-bucket

您可以移除要求中的多個 key:value 組合。

XML API

  1. OAuth 2.0 Playground 取得授權存取憑證。將 Playground 設為使用自己的 OAuth 憑證。
  2. 建立包含下列資訊的 .xml 檔案:

    <Tagging>
      <TagSet>
        <Tag>
        </Tag>
      </TagSet>
    </Tagging>

    請注意,您可以在單一要求中新增多個 <Tag> 元素。

  3. 使用 cURL 透過 PUT 值區要求和 tagging 查詢字串參數來呼叫 XML API

    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      "https://storage.googleapis.com/[BUCKET_NAME]?tagging"

    其中:

    • [XML_FILE_NAME] 是您在步驟 2 建立的 XML 檔案的名稱。
    • [OAUTH2_TOKEN] 是您在步驟 1 產生的存取憑證的名稱。
    • [BUCKET_NAME] 是要套用此標籤的值區名稱。例如,my-bucket

後續步驟

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

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

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