Nesta página, você verá como ativar, desativar e verificar o status do Controle de versões de objeto em um bucket. Consulte Como trabalhar com objetos com controle de versão para saber como listar, restaurar e excluir objetos retidos pelo Controle de versão de objeto.
Funções exigidas
Para receber as permissões necessárias para definir e gerenciar o controle de versões de objetos de um bucket, peça ao administrador para conceder a você o papel do IAM de Administrador do Storage (roles/storage.admin
) no bucket ou no projeto em que contém o bucket. Esse papel predefinido contém as permissões
necessárias para definir e gerenciar o controle de versões de objetos de um bucket. Para conferir as permissões exatas
necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
storage.buckets.get
storage.buckets.update
storage.buckets.list
- Essa permissão só é necessária ao usar o console do Google Cloud para executar as instruções nesta página.
Talvez você também consiga receber essas permissões com papéis personalizados.
Para informações sobre como conceder papéis nos buckets, consulte Usar o IAM com buckets. Para informações sobre como conceder papéis em projetos, consulte Gerenciar acesso a projetos.
Definir o controle de versão de objeto em um bucket
Console
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome daquele em que você quer ativar ou desativar o controle de versões de objetos.
Selecione a guia Proteção na parte superior da página.
O status atual do controle de versões de objeto está na seção Controle de versões de objeto.
Na seção Controle de versões de objeto, clique no status atual para fazer alterações.
A caixa de diálogo Controle de versões de objetos é exibida.
- Se você estiver ativando o controle de versões de objeto e quiser minimizar os custos de armazenamento, marque a caixa de seleção Adicionar regras de ciclo de vida recomendadas para gerenciar custos de versão.
Clique em Confirmar.
Linha de comando
Use o comando gcloud storage buckets update
com a flag apropriada:
gcloud storage buckets update gs://BUCKET_NAME FLAG
Em que:
BUCKET_NAME
é o nome do bucket pertinente. Por exemplo,my-bucket
.FLAG
é--versioning
para ativar o controle de versão de objeto ou--no-versioning
para desativá-lo.
Se a operação for bem-sucedida, a resposta será semelhante a esta:
Updating gs://my-bucket/... Completed 1
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
O exemplo a seguir ativa o controle de versão de objeto em um bucket:
A amostra a seguir mostra como desativar o controle de versão de objeto em um bucket:
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
O exemplo a seguir ativa o controle de versão de objeto em um bucket:
A amostra a seguir mostra como desativar o controle de versão de objeto em um bucket:
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
O exemplo a seguir ativa o controle de versão de objeto em um bucket:
A amostra a seguir mostra como desativar o controle de versão de objeto em um bucket:
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
O exemplo a seguir ativa o controle de versão de objeto em um bucket:
A amostra a seguir mostra como desativar o controle de versão de objeto em um bucket:
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
O exemplo a seguir ativa o controle de versão de objeto em um bucket:
A amostra a seguir mostra como desativar o controle de versão de objeto em um bucket:
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
O exemplo a seguir ativa o controle de versão de objeto em um bucket:
A amostra a seguir mostra como desativar o controle de versão de objeto em um bucket:
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
O exemplo a seguir ativa o controle de versão de objeto em um bucket:
A amostra a seguir mostra como desativar o controle de versão de objeto em um bucket:
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
O exemplo a seguir ativa o controle de versão de objeto em um bucket:
A amostra a seguir mostra como desativar o controle de versão de objeto em um bucket:
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Crie um arquivo JSON com as informações a seguir:
{ "versioning": { "enabled": STATE } }
Em que STATE é
true
oufalse
.Use
cURL
para chamar a API JSON com uma solicitação bucketPATCH
:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
Em que:
JSON_FILE_NAME
é o caminho para o arquivo JSON criado na Etapa 2.BUCKET_NAME
é o nome do bucket pertinente. Por exemplo,my-bucket
.
API XML
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Crie um arquivo XML que contenha as seguintes informações:
<VersioningConfiguration> <Status>STATE</Status> </VersioningConfiguration>
Em que STATE é
Enabled
ouSuspended
.Use
cURL
para chamar a API XML com uma solicitação de bucketPUT
e um parâmetro de string de consultaversioning
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
Em que:
XML_FILE_NAME
é o caminho para o arquivo XML criado na Etapa 2.BUCKET_NAME
é o nome do bucket pertinente. Por exemplo,my-bucket
.
Depois que o controle de versão de objeto é ativado, sempre que uma versão de objeto ativa é substituída ou excluída, ela se torna não atual.
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:
Console
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, o status do controle de versões de objeto de cada bucket está na coluna Proteção.
Se ativado, o texto Controle de versões de objeto é exibido.
Linha de comando
Use o comando gcloud storage buckets describe
com a flag --format
:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(versioning)"
Em que BUCKET_NAME
é o nome do bucket
com o status que você quer visualizar. Por exemplo, my-bucket
.
Se for bem-sucedido e o controle de versões de objetos estiver ativado, a resposta será semelhante a este exemplo:
versioning: enabled: true
Se for bem-sucedido e o controle de versões de objetos não estiver ativado, a resposta será semelhante ao exemplo a seguir:
null
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com uma solicitação bucketGET
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
Em que
BUCKET_NAME
é o nome do bucket pertinente. Por exemplo,my-bucket
.
Se for bem-sucedido e o controle de versões de objetos estiver ativado, a resposta será semelhante a este exemplo:
{ "versioning": { "enabled": true } }
Se for bem-sucedido e o controle de versões de objetos não estiver ativado, a resposta será semelhante ao exemplo a seguir:
{}
API XML
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
para chamar a API XML com uma solicitação de bucketGET
e um parâmetro de string de consultaversioning
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
Em que
BUCKET_NAME
é o nome do bucket pertinente. Por exemplo,my-bucket
.
Se for bem-sucedido e o controle de versões de objetos estiver ativado, a resposta será semelhante a este exemplo:
<VersioningConfiguration>
<Status>Enabled</Status>
</VersioningConfiguration>
Se for bem-sucedido e o controle de versões de objetos não estiver ativado, a resposta será semelhante ao exemplo a seguir:
<VersioningConfiguration/>
A seguir
- Saiba mais sobre como controlar versões de objetos.
- Saiba como trabalhar com objetos não atuais.
- Saiba como usar o Gerenciamento do ciclo de vida de objetos para gerenciar automaticamente as versões de objetos.
- Saiba como usar pré-condições de solicitação para evitar disputas.