Nesta página, você verá como listar, acessar, restaurar e excluir objetos não atuais, que normalmente se aplicam a buckets com o Controle de versões de objetos ativado. Os objetos não atuais também são chamados de objetos com controle de versões.
Antes de começar
Para trabalhar com objetos não atuais, siga estas etapas de pré-requisito.
Ativar o controle de versão de objetos
Se você ainda não tiver feito isso, ative o controle de versões de objetos no seu bucket.
Acessar os papéis necessários
Para receber as permissões necessárias para gerenciar objetos não atuais, peça ao administrador para conceder a você o papel do IAM de Usuário do objeto do Storage (roles/storage.objectUser) no projeto. Esse papel predefinido contém as permissões necessárias para gerenciar objetos não atuais. Para conferir as permissões exatas
necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
storage.objects.createstorage.objects.deletestorage.objects.getstorage.objects.list
Talvez você também consiga receber essas permissões com papéis personalizados.
Para informações sobre como conceder papéis em projetos, consulte Gerenciar acesso a projetos.
Dependendo do caso de uso, serão necessárias permissões adicionais ou papéis alternativos:
Se você planeja usar o console Google Cloud para executar as tarefas nesta página, também precisará da permissão
storage.buckets.list, que não está incluída no papel de Usuário de objetos do Storage (roles/storage.objectUser). Para receber essa permissão, peça ao administrador para conceder a você o papel de Administrador do Storage (roles/storage.admin) no projeto.Se o acesso uniforme no nível do bucket estiver desativado para seu bucket, serão necessárias outras permissões nos seguintes cenários:
Se você planeja retornar objetos não atuais com as ACLs deles, também precisará da permissão
storage.objects.getIamPolicy, que não está incluída no papel Usuário do objeto do Storage (roles/storage.objectUser). Para receber essa permissão, peça ao administrador para conceder a você o papel de Administrador de objetos do Storage (roles/storage.objectAdmin) no projeto.Se você planeja renomear ou restaurar objetos não atuais que tenham ACLs, também precisará da permissão
storage.objects.setIamPolicy, que não está incluída no papel Usuário do objeto do Storage (roles/storage.objectUser). Para receber essa permissão, peça ao administrador para conceder a você o papel de Administrador de objetos do Storage (roles/storage.objectAdmin) no projeto.
Listar versões de objetos não atuais
Para listar versões ativas e não atuais de objetos e visualizar osgeneration números deles:
Console
- No console do Google Cloud , acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome daquele que contém o objeto desejado.
A página Detalhes do bucket é aberta, com a guia Objetos selecionada.
Para visualizar objetos não atuais, clique no menu suspenso Mostrar e selecione Objetos ativos e não atuais.
Na lista de objetos, clique no nome do objeto cujas versões você quer ver.
A página Detalhes do objeto é aberta com a guia Objeto ativo selecionada.
Clique na guia Histórico de versões para ver todas as versões do objeto.
Linha de comando
Use o comando gcloud storage ls --all-versions:
gcloud storage ls --all-versions gs://BUCKET_NAME
Em que BUCKET_NAME é o nome do bucket que
contém os objetos. Por exemplo, my-bucket.
A resposta terá esta aparência:
gs://BUCKET_NAME/OBJECT_NAME1#GENERATION_NUMBER1 gs://BUCKET_NAME/OBJECT_NAME2#GENERATION_NUMBER2 gs://BUCKET_NAME/OBJECT_NAME3#GENERATION_NUMBER3 ...
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
C#
Saiba mais na documentação de referência C# da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Go
Saiba mais na documentação de referência Go da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Java
Saiba mais na documentação de referência Java da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Node.js
Saiba mais na documentação de referência Node.js da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
PHP
Saiba mais na documentação de referência PHP da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Python
Saiba mais na documentação de referência Python da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Ruby
Saiba mais na documentação de referência Ruby da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization.Use
cURLpara chamar a API JSON com uma solicitação Objects: list:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?versions=true"
Em que
BUCKET_NAMEé o nome do bucket que contém os objetos. Por exemplo,my-bucket.
Versões arquivadas de objetos têm uma propriedade timeDeleted.
API XML
Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization.Use
cURLpara chamar a API XML com uma solicitação de bucketGETe um parâmetro de string de consultaversions:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?versions&list-type=2"
Em que
BUCKET_NAMEé o nome do bucket que contém os objetos. 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
Versionque contém informações sobre cada objeto. - Um elemento
DeletedTimeque contém a hora em que a versão do objeto foi arquivada (excluída ou substituída). - Um elemento IsLatest que indica se o objeto específico é a versão mais recente.
- Um elemento
NextGenerationMarkerserá 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 consultagenerationmarkerdas solicitações subsequentes para retomar a partir do último ponto. O parâmetro de consultagenerationmarkeré usado da mesma forma que o parâmetro de consultamarkerpara paginar uma listagem de um bucket sem controle de versão.
Acessar versões de objetos não atuais
Para usar a versão arquivada de um objeto ao realizar tarefas como fazer o download de um objeto, visualizar metadados ou atualizar metadados:
Console
O acesso geral a uma versão não atual não está disponível no console doGoogle Cloud . Com o console Google Cloud , só é possível mover, copiar, restaurar ou excluir uma versão arquivada. Essas ações são realizadas na lista do histórico de versões de um objeto.
Linha de comando
Anexe o número de geração 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.
Usando a string da etapa anterior, continue como normalmente faria para a versão ativa do objeto. Por exemplo, para ver os metadados de uma versão de objeto não atual, use o comando
gcloud storage objects describe:gcloud storage objects describe gs://my-bucket/pets/dog.png#1560468815691234
APIs REST
API JSON
Anexe o número de geração 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 codificado por URL da versão arquivada. Por exemplo,pets/dog.png, codificado em URL comopets%2Fdog.png.GENERATION_NUMBERé o número de geração da versão arquivada. Por exemplo,1560468815691234.
Usando o URI da etapa anterior, continue como faria normalmente para a versão ativa do objeto. Por exemplo, para consultar os metadados de uma versão de objeto não atual, use cURL para chamar a API JSON com Objects: get:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/my-bucket/o/pets/dog.png?generation=1560468815691234"
API XML
Anexe o número de geração 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 codificado por URL da versão arquivada. Por exemplo,pets/dog.png, codificado em URL comopets%2Fdog.png.GENERATION_NUMBERé o número de geração da versão arquivada. Por exemplo,1560468815691234.
Usando o URI da etapa anterior, continue como faria normalmente para a versão ativa do objeto. Por exemplo, para visualizar os metadados de uma versão de objeto não atual, use
cURLpara chamar a API XML com umaHEADSolicitação de objeto:curl -I GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/my-bucket/pets/dog.png?generation=1560468815691234"
Restaurar versões de objetos não atuais
No Cloud Storage, restaurar uma versão de objeto não atual significa fazer uma cópia dela. Ao fazer isso, a cópia se torna a versão ativa, restaurando efetivamente a versão. Se já houver uma versão ativa e o bucket tiver o recurso de controle de versões de objeto ativado, a restauração da versão não atual fará com que a versão ativa preexistente se torne não atual.
Console
- No console do Google Cloud , acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome daquele que contém o objeto desejado.
A página Detalhes do bucket é aberta, com a guia Objetos selecionada.
Para visualizar objetos não atuais, clique no menu suspenso Mostrar e selecione Objetos ativos e não atuais.
Na lista de objetos, clique no nome da versão que você quer restaurar.
A página Detalhes do objeto é aberta com a guia Objeto ativo selecionada.
Clique na guia Histórico de versões.
Clique no botão Restaurar da versão pretendida.
O painel da versão do objeto de restauração é aberto.
Clique em Confirmar.
Linha de comando
Use o comando gcloud storage cp:
gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER gs://BUCKET_NAME
Em que:
BUCKET_NAMEé o nome do bucket que contém a versão não atual que você quer restaurar. Por exemplo,my-bucket.OBJECT_NAMEé o nome da versão não atual que você quer restaurar. Por exemplo,pets/dog.png.GENERATION_NUMBERé o número de geração da versão arquivada que você quer restaurar. Por exemplo,1560468815691234.
Se funcionar, a resposta será parecida com esta:
Operation completed over 1 objects/58.8 KiB.
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
C#
Saiba mais na documentação de referência C# da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Go
Saiba mais na documentação de referência Go da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Java
Saiba mais na documentação de referência Java da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Node.js
Saiba mais na documentação de referência Node.js da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
PHP
Saiba mais na documentação de referência PHP da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Python
Saiba mais na documentação de referência Python da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Ruby
Saiba mais na documentação de referência Ruby da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization.Use
cURLpara chamar a API JSON com uma solicitação de objetoPOST:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/rewriteTo/b/BUCKET_NAME/o/OBJECT_NAME?sourceGeneration=GENERATION_NUMBER"
Em que:
BUCKET_NAMEé o nome do bucket que contém a versão não atual que você quer restaurar. Por exemplo,my-bucket.OBJECT_NAMEé o nome codificado por URL da versão arquivada que você quer restaurar. Por exemplo,pets/dog.png, codificado por URL comopets%2Fdog.png.GENERATION_NUMBERé o número de geração da versão arquivada que você quer restaurar. Por exemplo,1560468815691234.
API XML
Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization.Use
cURLpara chamar a API XML com uma solicitaçãoPUTObjeto:curl -X PUT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-copy-source: BUCKET_NAME/OBJECT_NAME" \ -H "x-goog-copy-source-generation:GENERATION_NUMBER" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
Em que:
BUCKET_NAMEé o nome do bucket que contém a versão não atual que você quer restaurar. Por exemplo,my-bucket.OBJECT_NAMEé o nome codificado por URL da versão arquivada que você quer restaurar. Por exemplo,pets/dog.png, codificado por URL comopets%2Fdog.png.GENERATION_NUMBERé o número de geração da versão arquivada que você quer restaurar. Por exemplo,1560468815691234.
Depois de restaurar a versão do objeto, a versão original não atual continuará existindo no bucket. Se você não precisar mais da versão não atual, será possível excluí-la ou configurar o Gerenciamento de ciclo de vida de objetos para removê-la quando as condições especificadas forem atendidas.
Excluir versões de objeto não atuais
Console
- No console do Google Cloud , acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome daquele que contém o objeto desejado.
A página Detalhes do bucket é aberta, com a guia Objetos selecionada.
Para visualizar objetos não atuais, clique no menu suspenso Mostrar e selecione Objetos ativos e não atuais.
Navegue até o objeto, que pode estar localizado em uma pasta.
Na lista de objetos, clique no nome do objeto cuja versão você quer excluir.
A página Detalhes do objeto é aberta com a guia Objeto ativo selecionada.
Clique na guia Histórico de versões.
Marque a caixa de seleção da versão desejada.
Clique no botão Excluir.
O painel de exclusão de versão será aberto.
Confirme se você quer excluir o objeto digitando
deleteno campo de texto.Clique em Excluir.
Linha de comando
Use o comando gcloud storage rm:
gcloud storage 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 funcionar, a resposta será parecida com esta:
Operation completed over 1 objects.
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
C#
Saiba mais na documentação de referência C# da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Go
Saiba mais na documentação de referência Go da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Java
Saiba mais na documentação de referência Java da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Node.js
Saiba mais na documentação de referência Node.js da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
PHP
Saiba mais na documentação de referência PHP da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Python
Saiba mais na documentação de referência Python da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Ruby
Saiba mais na documentação de referência Ruby da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization.Use
cURLpara chamar a API JSON com uma solicitação de objetoDELETE:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "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 que você quer excluir. Por exemplo,my-bucket.OBJECT_NAMEé o nome codificado por URL da versão arquivada que você quer restaurar. Por exemplo,pets/dog.png, codificado por URL comopets%2Fdog.png.GENERATION_NUMBERé o número de geração da versão arquivada que você quer excluir. Por exemplo,1560468815691234.
API XML
Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization.Use
cURLpara chamar a API XML com uma solicitaçãoDELETEObjeto:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "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 que você quer excluir. Por exemplo,my-bucket.OBJECT_NAMEé o nome codificado por URL da versão arquivada que você quer restaurar. Por exemplo,pets/dog.png, codificado por URL comopets%2Fdog.png.GENERATION_NUMBERé o número de geração da versão arquivada que você quer excluir. Por exemplo,1560468815691234.
A seguir
- Saiba mais sobre o controle de versão de objetos, incluindo um exemplo detalhado.
- Saiba como desativar o controle de versões de objetos em um bucket.
- Saiba como usar o Gerenciamento do ciclo de vida de objetos para gerenciar automaticamente as versões de objetos.