Como usar rótulos em intervalos

Nesta página, você verá como adicionar, visualizar, editar e remover os rótulos definidos em um bucket no Cloud Storage. Para ter uma visão geral dos buckets e dos rótulos de bucket, consulte os Termos-chave.

Adicionar um marcador de bucket

Console

  1. Abra o navegador do Cloud Storage no Console do Google Cloud.
    Abra o navegador do Cloud Storage
  2. Na lista de buckets, localize o bucket em que você quer aplicar um rótulo e clique no menuflutuante bucket ().

  3. Clique em Editar rótulos.

  4. No painel lateral exibido, clique no botão + Adicionar rótulo.

  5. Especifique um key e value para seu rótulo.

  6. Clique em Salvar.

No painel lateral Editar marcadores, é possível também editar o Valor dos marcadores existentes.

gsutil

Use a sinalização -l em um comando label ch. Exemplo:

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

em que

  • [KEY_1] é o nome da chave para seu rótulo. Por exemplo, pet.
  • [VALUE_1] é o valor para seu rótulo. Por exemplo, dog.
  • [BUCKET_NAME] é o nome do bucket a que o rótulo se aplica. Por exemplo, my-bucket.

Use várias sinalizações -l para adicionar ou editar vários pares de key:value em um único comando.

Use o comando label set para substituir todos os rótulos existentes por novos.

Amostras de código

C++

Para mais informações, consulte a documentação de referência da API do Cloud Storage para C++.

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";
}

Java

Para mais informações, consulte a documentação de referência da API do Cloud Storage para Java.

import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import java.util.HashMap;
import java.util.Map;

public class AddBucketLabel {
  public static void addBucketLabel(
      String projectId, String bucketName, String labelKey, String labelValue) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

    // The ID of your GCS bucket
    // String bucketName = "your-unique-bucket-name";

    // The key of the label to add
    // String labelKey = "label-key-to-add";

    // The value of the label to add
    // String labelValue = "label-value-to-add";

    Map<String, String> labelsToAdd = new HashMap<>();
    labelsToAdd.put(labelKey, labelValue);

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    Bucket bucket = storage.get(bucketName);
    Map<String, String> labels = bucket.getLabels();
    if (labels == null) {
      labels = labelsToAdd;
    } else {
      labels.putAll(labelsToAdd);
    }
    bucket.toBuilder().setLabels(labels).build().update();

    System.out.println(
        "Added label " + labelKey + " with value " + labelValue + " to bucket " + bucketName + ".");
  }
}

PHP

Para mais informações, consulte a documentação de referência da API do Cloud Storage para PHP.

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

Para mais informações, consulte a documentação de referência da API do Cloud Storage para Python.

from google.cloud import storage
import pprint

def add_bucket_label(bucket_name):
    """Add a label to a bucket."""
    # bucket_name = "your-bucket-name"

    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

Para mais informações, consulte a documentação de referência da API do Cloud Storage para Ruby.

# 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
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}"

APIs REST

API JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .json que contenha as seguintes informações:

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

    em que

    • [KEY_1] é o nome da chave para seu rótulo. Por exemplo, pet.
    • [VALUE_1] é o valor para seu rótulo. Por exemplo, dog.
  3. Use cURL para chamar a API JSON com uma solicitação de PATCH bucket:

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

    Em que:

    • [JSON_FILE_NAME] é o nome do arquivo JSON que você criou na Etapa 2.
    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket a que o rótulo se aplica. Por exemplo, my-bucket.

É possível adicionar ou editar vários pares de key:value em uma solicitação.

API XML

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .xml que contenha as seguintes informações:

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

    Em que:

    • [KEY_1] é o nome da chave para seu rótulo. Por exemplo, pet.
    • [VALUE_1] é o valor para seu rótulo. Por exemplo, dog.

    É possível adicionar vários elementos de <Tag> em uma solicitação.

  3. Use cURL para chamar a API XML com uma solicitação de PUT bucket e um parâmetro de string de consulta de tagging:

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

    Em que:

    • [XML_FILE_NAME] é o arquivo XML que você criou na Etapa 2.
    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket a que o rótulo se aplica. Por exemplo, my-bucket.

Ver rótulos de bucket

Console

  1. Abra o navegador do Cloud Storage no Console do Google Cloud.
    Abra o navegador do Cloud Storage
  2. Opcional: é possível limitar as colunas exibidas na lista de intervalos do Console do Cloud clicando no menu Opções de exibição de coluna (Ícone de opções da coluna.).

  3. Na lista de buckets, encontre o bucket que você quer verificar e verifique a entrada do Rótulo. Talvez seja necessário rolar a tela horizontalmente para visualizar a coluna Rótulo.

    Se o bucket tiver vários rótulos, alguns poderão ficar ocultos. Quando os rótulos estão ocultos, um botão expansível é exibido. Clique no botão para exibir todos os rótulos de um bucket.

    Coluna de lista de intervalos com rótulos

gsutil

Use o seguinte comando gsutil ls:

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

Em que:

  • [BUCKET_NAME] é o bucket cujos rótulos você quer visualizar. Por exemplo, my-bucket.

A resposta terá esta aparência:

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

Amostras de código

C++

Para mais informações, consulte a documentação de referência da API do Cloud Storage para C++.

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

Para mais informações, consulte a documentação de referência da API do Cloud Storage para PHP.

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

Para mais informações, consulte a documentação de referência da API do Cloud Storage para Python.

from google.cloud import storage
import pprint

def get_bucket_labels(bucket_name):
    """Prints out a bucket's labels."""
    # bucket_name = 'your-bucket-name'
    storage_client = storage.Client()

    bucket = storage_client.get_bucket(bucket_name)

    labels = bucket.labels
    pprint.pprint(labels)

Ruby

Para mais informações, consulte a documentação de referência da API do Cloud Storage para Ruby.

# bucket_name = "Name of your Google Cloud Storage bucket"

require "google/cloud/storage"

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

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

APIs REST

API JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use cURL para chamar a API JSON com uma solicitação de GET bucket que inclua o parâmetro de string de consulta de fields=labels:

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

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket cujos rótulos você quer visualizar. Por exemplo, my-bucket.

A resposta terá esta aparência:

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

API XML

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Use cURL para chamar a API XML com uma solicitação de GET bucket e um parâmetro de string de consulta de tagging:

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

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket cujos rótulos você quer visualizar. Por exemplo, my-bucket.

A resposta terá esta aparência:

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

Remover o marcador de um bucket

Console

  1. Abra o navegador do Cloud Storage no Console do Google Cloud.
    Abra o navegador do Cloud Storage
  2. Na lista de buckets, localize o bucket cujo rótulo você quer remover e clique no menu flutuante bucket ().

  3. Clique em Editar rótulos.

  4. Clique no X associado ao rótulo que quer remover.

  5. Clique em Salvar.

gsutil

Use a sinalização -d em um comando label ch. Exemplo:

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

Em que:

  • [KEY_1] é o nome da chave para seu rótulo. Por exemplo, pet.
  • [BUCKET_NAME] é o nome do bucket a que o rótulo se aplica. Por exemplo, my-bucket.

Use o comando label set para substituir todos os rótulos existentes por novos.

Amostras de código

C++

Para mais informações, consulte a documentação de referência da API do Cloud Storage para C++.

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";
}

Java

Para mais informações, consulte a documentação de referência da API do Cloud Storage para Java.

import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import java.util.HashMap;
import java.util.Map;

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

    // The ID of your GCS bucket
    // String bucketName = "your-unique-bucket-name";

    // The key of the label to remove from the bucket
    // String labelKey = "label-key-to-remove";

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();

    Map<String, String> labelsToRemove = new HashMap<>();
    labelsToRemove.put(labelKey, null);

    Bucket bucket = storage.get(bucketName);
    Map<String, String> labels;
    if (bucket.getLabels() == null) {
      labels = new HashMap<>();
    } else {
      labels = new HashMap(bucket.getLabels());
    }
    labels.putAll(labelsToRemove);
    bucket.toBuilder().setLabels(labels).build().update();

    System.out.println("Removed label " + labelKey + " from bucket " + bucketName);
  }
}

PHP

Para mais informações, consulte a documentação de referência da API do Cloud Storage para PHP.

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

Para mais informações, consulte a documentação de referência da API do Cloud Storage para Python.

from google.cloud import storage
import pprint

def remove_bucket_label(bucket_name):
    """Remove a label from a bucket."""
    # bucket_name = "your-bucket-name"

    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

Para mais informações, consulte a documentação de referência da API do Cloud Storage para Ruby.

# 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
bucket  = storage.bucket bucket_name

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

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

APIs REST

API JSON

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .json que contenha as seguintes informações:

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

    Em que:

    • [KEY_1] é o nome da chave para seu rótulo. Por exemplo, pet.
  3. Use cURL para chamar a API JSON com uma solicitação de PATCH bucket:

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

    Em que:

    • [JSON_FILE_NAME] é o nome do arquivo JSON que você criou na Etapa 2.
    • [OAUTH2_TOKEN]é o nome do token de acesso que você gerou na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket ao qual o rótulo se aplica. Por exemplo, my-bucket.

É possível remover vários pares de key:value em uma solicitação.

API XML

  1. Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth.
  2. Crie um arquivo .xml que contenha as seguintes informações:

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

    É possível adicionar vários elementos de <Tag> em uma solicitação.

  3. Use cURL para chamar a API XML com uma solicitação de PUT bucket e um parâmetro de string de consulta de tagging:

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

    Em que:

    • [XML_FILE_NAME] é o nome do arquivo XML que você criou na Etapa 2.
    • [OAUTH2_TOKEN]é o nome do token de acesso que você gerou na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket ao qual o rótulo se aplica. Por exemplo, my-bucket.

A seguir