Como usar o controle de versão de objeto

Acessar conceitos

Nesta página, você aprende a configurar o controle de versão de objeto com exemplos de utilização.

Como configurar o controle de versão de objeto

Nas próximas seções, você verá como ativar e desativar o controle de versão de objeto com a ferramenta gsutil, a API JSON e a API XML. No momento, não é possível controlar o controle de versão de objeto com o Console do Google Cloud.

Como ativar o controle de versão de objeto

Para ativar o controle de versão de objeto em um bucket:

gsutil

Use o comando gsutil versioning set on:

gsutil versioning set on gs://[BUCKET_NAME]

em que [BUCKET_NAME] é o nome do bucket pertinente. Por exemplo, my-bucket.

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> original =
      client.GetBucketMetadata(bucket_name);
  if (!original) throw std::runtime_error(original.status().message());

  StatusOr<gcs::BucketMetadata> patched = client.PatchBucket(
      bucket_name,
      gcs::BucketMetadataPatchBuilder().SetVersioning(
          gcs::BucketVersioning{true}),
      gcs::IfMetagenerationMatch(original->metageneration()));
  if (!patched) throw std::runtime_error(patched.status().message());

  if (patched->versioning().has_value()) {
    std::cout << "Object versioning for bucket " << bucket_name << " is "
              << (patched->versioning()->enabled ? "enabled" : "disabled")
              << "\n";
  } else {
    std::cout << "Object versioning for bucket " << bucket_name
              << " is disabled.\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;

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

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

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    Bucket bucket = storage.get(bucketName);
    bucket.toBuilder().setVersioningEnabled(true).build().update();

    System.out.println("Versioning is now enabled for bucket " + bucketName);
  }
}

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:

    {
      "versioning": {
        "enabled": true
      }
    }
  3. Use cURL para chamar a API JSON com uma solicitação de bucket PATCH:

    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=versioning"

    Em que:

    • [JSON_FILE_NAME] é o arquivo criado na Etapa 2.
    • [OAUTH2_TOKEN] é o token de acesso criado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket pertinente. Por exemplo, my-bucket.

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:

    <VersioningConfiguration>
      <Status>Enabled</Status>
    </VersioningConfiguration>
  3. Use cURL para chamar a API XML com uma solicitação de PUTbucket e parâmetro de string de consulta de versioning:

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

    Em que:

    • [XML_FILE_NAME] é o arquivo criado na Etapa 2.
    • [OAUTH2_TOKEN] é o token de acesso criado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket pertinente. Por exemplo, my-bucket.

Quando o controle de versão de objeto está ativado, o Cloud Storage cria uma versão arquivada de um objeto sempre que a versão ativa do objeto for substituída ou excluída.

Como desativar o Controle de versão de objeto

Para desativar o Controle de versão de objeto em um bucket:

gsutil

Use o comando gsutil versioning set off:

gsutil versioning set off gs://[BUCKET_NAME]

em que [BUCKET_NAME] é o nome do bucket pertinente. Por exemplo, my-bucket.

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> original =
      client.GetBucketMetadata(bucket_name);
  if (!original) throw std::runtime_error(original.status().message());

  StatusOr<gcs::BucketMetadata> patched = client.PatchBucket(
      bucket_name,
      gcs::BucketMetadataPatchBuilder().SetVersioning(
          gcs::BucketVersioning{false}),
      gcs::IfMetagenerationMatch(original->metageneration()));
  if (!patched) throw std::runtime_error(patched.status().message());

  if (patched->versioning().has_value()) {
    std::cout << "Object versioning for bucket " << bucket_name << " is "
              << (patched->versioning()->enabled ? "enabled" : "disabled")
              << "\n";
  } else {
    std::cout << "Object versioning for bucket " << bucket_name
              << " is disabled.\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;

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

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

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    Bucket bucket = storage.get(bucketName);
    bucket.toBuilder().setVersioningEnabled(false).build().update();

    System.out.println("Versioning is now disabled for bucket " + bucketName);
  }
}

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:

    {
      "versioning": {
        "enabled": false
      }
    }
  3. Use cURL para chamar a API JSON com uma solicitação de bucket PATCH:

    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=versioning"

    Em que:

    • [JSON_FILE_NAME] é o arquivo criado na Etapa 2.
    • [OAUTH2_TOKEN] é o token de acesso criado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket pertinente. Por exemplo, my-bucket.

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:

    <VersioningConfiguration>
      <Status>Suspended</Status>
    </VersioningConfiguration>
  3. Use cURL para chamar a API XML com uma solicitação de PUTbucket e parâmetro de string de consulta de versioning:

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

    Em que:

    • [XML_FILE_NAME] é o arquivo criado na Etapa 2.
    • [OAUTH2_TOKEN] é o token de acesso criado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket pertinente. Por exemplo, my-bucket.

Como verificar se o controle de versão de objeto está ativado

Para verificar se o Controle de versão de objeto está ativado em um bucket:

gsutil

Use o comando gsutil versioning get:

gsutil versioning get gs://[BUCKET_NAME]

em que [BUCKET_NAME] é o nome do bucket pertinente. Por exemplo, my-bucket.

Se o controle de versão de objeto estiver ativado, a resposta será como esta:

gs://[BUCKET_NAME]: Enabled

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:

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

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso criado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket pertinente. Por exemplo, my-bucket.

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 GETbucket e parâmetro de string de consulta de versioning:

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

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso criado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket pertinente. Por exemplo, my-bucket.

Como trabalhar com objetos com controle de versão

Nas próximas seções, você vai aprender a trabalhar com objetos com controle de versão. Para ver um exemplo detalhado de como trabalhar com o controle de versão de objetos, consulte Exemplo de controle de versão de objetos.

Como listar versões de objetos arquivados

Para listar versões ativas e arquivadas de um objeto e visualizar seus números de generation:

gsutil

Use o comando gsutil ls -a:

gsutil ls -a gs://[BUCKET_NAME]

em que [BUCKET_NAME] é o nome do bucket pertinente. Por exemplo, my-bucket.

A resposta terá esta aparência:

gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER1]
gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER2]
gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER3]
...

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;
[](gcs::Client client, std::string bucket_name) {
  for (auto&& object_metadata :
       client.ListObjects(bucket_name, gcs::Versions{true})) {
    if (!object_metadata) {
      throw std::runtime_error(object_metadata.status().message());
    }

    std::cout << "bucket_name=" << object_metadata->bucket()
              << ", object_name=" << object_metadata->name()
              << ", generation=" << object_metadata->generation() << "\n";
  }
}

Java

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

import com.google.api.gax.paging.Page;
import com.google.cloud.storage.Blob;
import com.google.cloud.storage.Bucket;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

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

    // The ID of your GCS bucket
    // String bucketName = "your-unique-bucket-name";
    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    Bucket bucket = storage.get(bucketName);
    Page<Blob> blobs = bucket.list(Storage.BlobListOption.versions(true));

    for (Blob blob : blobs.iterateAll()) {
      System.out.println(blob.getName() + "," + blob.getGeneration());
    }
  }
}

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 LIST Objeto:

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

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso criado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket pertinente. Por exemplo, my-bucket.

Versões arquivadas de objetos têm uma propriedade timeDeleted.

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 GETbucket e parâmetro de string de consulta de versions:

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

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso criado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket pertinente. Por exemplo, my-bucket.

Há algumas diferenças nos resultados da solicitação GET quando se usa o parâmetro da consulta versions e quando ele não é usado. Especificamente, o Cloud Storage retorna as seguintes informações quando um parâmetro de consulta versions é incluído na solicitação:

  • Um elemento Version que contém informações sobre cada objeto.
  • Um elemento DeletedTime que contém a hora em que o objeto foi arquivado (excluído ou substituído).
  • Um elemento IsLatest que indica se o objeto específico é a versão mais recente
  • Um elemento NextGenerationMarker será retornado se a listagem de objetos for uma listagem parcial. Isso ocorre quando você tem muitas versões de objeto em um bucket. Use o valor desse elemento no parâmetro de consulta generationmarker das solicitações subsequentes para retomar a partir do último ponto. O parâmetro de consulta generationmarker é usado da mesma forma que o parâmetro de consulta marker para paginar uma listagem de um bucket sem controle de versão.

Como acessar versões de objetos arquivados

Para usar a versão arquivada de um objeto ao realizar tarefas como fazer o download de um objeto, visualizar metadados ou atualizar metadados:

gsutil

  1. Anexe o número de generation da versão arquivada ao nome do objeto:

    [OBJECT_NAME]#[GENERATION_NUMBER]

    Em que:

    • [OBJECT_NAME] é o nome da versão arquivada. Por exemplo, pets/dog.png.
    • [GENERATION_NUMBER] é o número de geração da versão arquivada. Por exemplo, 1560468815691234.
  2. Usando a string da etapa 1, continue como normalmente faria com a versão ativa do objeto.

APIs REST

API JSON

  1. Anexe o número de generation da versão arquivada ao URI do objeto:

    https://storage.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]

    Em que:

    • [BUCKET_NAME] é o nome do bucket que contém a versão arquivada. Por exemplo, my-bucket.
    • [OBJECT_NAME] é o nome da versão arquivada. Por exemplo, pets/dog.png.
    • [GENERATION_NUMBER] é o número de geração da versão arquivada. Por exemplo, 1560468815691234.
  2. Usando o URI da etapa 1, continue como normalmente faria com a versão ativa do objeto.

API XML

  1. Anexe o número de generation da versão arquivada ao URI do objeto:

    https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]

    Em que:

    • [BUCKET_NAME] é o nome do bucket que contém a versão arquivada. Por exemplo, my-bucket.
    • [OBJECT_NAME] é o nome da versão arquivada. Por exemplo, pets/dog.png.
    • [GENERATION_NUMBER] é o número de geração da versão arquivada. Por exemplo, 1560468815691234.
  2. Usando o URI da etapa 1, continue como normalmente faria com a versão ativa do objeto.

Como copiar versões de objetos arquivados

Para copiar a versão arquivada de um objeto:

gsutil

Use o comando gsutil cp:

gsutil cp gs://[SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]#[GENERATION_NUMBER] gs://[DESTINATION_BUCKET_NAME]/[DESTINATION_OBJECT_NAME]

Em que:

  • [SOURCE_BUCKET_NAME] é o nome do bucket que contém a versão arquivada que você quer copiar. Por exemplo, my-bucket.
  • [SOURCE_OBJECT_NAME] é o nome da versão arquivada que você quer copiar. Por exemplo, pets/dog.png.
  • [GENERATION_NUMBER] é o número de geração da versão arquivada que você quer copiar. Por exemplo, 1560468815691234.
  • [DESTINATION_BUCKET_NAME] é o nome do bucket onde você quer copiar a versão arquivada. Por exemplo, my-bucket.
  • [DESTINATION_OBJECT_NAME] é o nome da cópia da versão arquivada. Por exemplo, pets/shiba.png.

Se bem-sucedida, a resposta será parecida com esta:

Operation completed over 1 objects/58.8 KiB.

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 source_bucket_name,
   std::string source_object_name, std::string destination_bucket_name,
   std::string destination_object_name,
   std::int64_t source_object_generation) {
  StatusOr<gcs::ObjectMetadata> copy =
      client.CopyObject(source_bucket_name, source_object_name,
                        destination_bucket_name, destination_object_name,
                        gcs::SourceGeneration{source_object_generation});
  if (!copy) throw std::runtime_error(copy.status().message());

  std::cout << "Successfully copied " << source_object_name << " generation "
            << source_object_generation << " in bucket " << source_bucket_name
            << " to bucket " << copy->bucket() << " with name "
            << copy->name()
            << ".\nThe full metadata after the copy is: " << *copy << "\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.BlobId;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

public class CopyOldVersionOfObject {
  public static void copyOldVersionOfObject(
      String projectId,
      String bucketName,
      String objectToCopy,
      long generationToCopy,
      String newObjectName) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

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

    // The ID of the GCS object to copy an old version of
    // String objectToCopy = "your-object-name";

    // The generation of objectToCopy to copy
    // long generationToCopy = 1579287380533984;

    // What to name the new object with the old data from objectToCopy
    // String newObjectName = "your-new-object";

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    Storage.CopyRequest copyRequest =
        Storage.CopyRequest.newBuilder()
            .setSource(BlobId.of(bucketName, objectToCopy, generationToCopy))
            .setTarget(BlobId.of(bucketName, newObjectName))
            .build();
    storage.copy(copyRequest);

    System.out.println(
        "Generation "
            + generationToCopy
            + " of object "
            + objectToCopy
            + " in bucket "
            + bucketName
            + " was copied to "
            + newObjectName);
  }
}

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 POST Objeto:

    curl -X POST \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "Content-Length: 0" \
      "https://storage.googleapis.com/upload/storage/v1/b/[SOURCE_BUCKET_NAME]/o/[SOURCE_OBJECT_NAME]/rewriteTo/b/[DESTINATION_BUCKET_NAME]/o/[NAME_OF_COPY]?sourceGeneration=[GENERATION_NUMBER]"

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [SOURCE_BUCKET_NAME] é o nome do bucket que contém a versão arquivada que você quer copiar. Por exemplo, my-bucket.
    • [SOURCE_OBJECT_NAME] é o nome da versão arquivada que você quer copiar. Por exemplo, pets/dog.png.
    • [DESTINATION_BUCKET_NAME] é o nome do bucket onde você quer copiar a versão arquivada. Por exemplo, my-bucket.
    • [NAME OF COPY] é o nome da cópia da versão arquivada. Por exemplo, pets/shiba.png.
    • [GENERATION_NUMBER] é o número de geração da versão arquivada que você quer copiar. Por exemplo, 1560468815691234.

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 PUT Objeto:

    curl -X PUT \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      -H "x-goog-copy-source: [SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]" \
      -H "x-goog-copy-source-generation:[GENERATION_NUMBER]" \
      "https://storage.googleapis.com/[DESTINATION_BUCKET_NAME]/[NAME_OF_COPY]"

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [SOURCE_BUCKET_NAME] é o nome do bucket que contém a versão arquivada que você quer copiar. Por exemplo, my-bucket.
    • [SOURCE_OBJECT_NAME] é o nome da versão arquivada que você quer copiar. Por exemplo, pets/dog.png.
    • [GENERATION_NUMBER] é o número de geração da versão arquivada que você quer copiar. Por exemplo, 1560468815691234.
    • [DESTINATION_BUCKET_NAME] é o nome do bucket onde você quer copiar a versão arquivada. Por exemplo, my-bucket.
    • [NAME OF COPY] é o nome da cópia da versão arquivada. Por exemplo, pets/shiba.png.

Como excluir versões de objetos arquivadas

Para excluir a versão arquivada de um objeto:

gsutil

Use o comando gsutil rm:

gsutil rm gs://[BUCKET_NAME]/[OBJECT_NAME]#[GENERATION_NUMBER]

Em que:

  • [BUCKET_NAME] é o nome do bucket que contém a versão arquivada que você quer excluir. Por exemplo, my-bucket.
  • [OBJECT_NAME] é o nome da versão arquivada que você quer excluir. Por exemplo, pets/dog.png.
  • [GENERATION_NUMBER] é o número de geração da versão arquivada que você quer excluir. Por exemplo, 1560468815691234.

Se bem-sucedida, a resposta será parecida com esta:

Operation completed over 1 objects.

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;
[](gcs::Client client, std::string bucket_name, std::string object_name,
   std::int64_t object_generation) {
  google::cloud::Status status = client.DeleteObject(
      bucket_name, object_name, gcs::Generation{object_generation});
  if (!status.ok()) throw std::runtime_error(status.message());

  std::cout << "Deleted " << object_name << " generation "
            << object_generation << " in bucket " << bucket_name << "\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.BlobId;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

public class DeleteOldVersionOfObject {
  public static void deleteOldVersionOfObject(
      String projectId, String bucketName, String objectName, long generationToDelete) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

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

    // The ID of your GCS object
    // String objectName = "your-object-name";

    // The generation of objectName to delete
    // long generationToDelete = 1579287380533984;

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    storage.delete(BlobId.of(bucketName, objectName, generationToDelete));

    System.out.println(
        "Generation "
            + generationToDelete
            + " of object "
            + objectName
            + " was deleted from "
            + bucketName);
  }
}

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 DELETE Objeto:

    curl -X DELETE \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      "https://storage.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket que contém a versão arquivada que você quer excluir. Por exemplo, my-bucket.
    • [OBJECT_NAME] é o nome da versão arquivada que você quer excluir. Por exemplo, pets/dog.png.
    • [GENERATION_NUMBER] é o número de geração da versão arquivada que você quer excluir. Por exemplo, 1560468815691234.

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 DELETE Objeto:

    curl -X DELETE \
      -H "Authorization: Bearer [OAUTH2_TOKEN]" \
      "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"

    Em que:

    • [OAUTH2_TOKEN] é o token de acesso gerado na Etapa 1.
    • [BUCKET_NAME] é o nome do bucket que contém a versão arquivada que você quer excluir. Por exemplo, my-bucket.
    • [OBJECT_NAME] é o nome da versão arquivada que você quer excluir. Por exemplo, pets/dog.png.
    • [GENERATION_NUMBER] é o número de geração da versão arquivada que você quer excluir. Por exemplo, 1560468815691234.