Nesta página, você verá como listar, acessar, restaurar e excluir objetos não atuais, que normalmente se aplicam a buckets com o recurso Controle de versões de objetos ativado.
Funções exigidas
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.
- Ative ou desative o Controle de versão de objeto em um bucket.
- Saiba como usar o gerenciamento do ciclo de vida de objetos para gerenciar automaticamente as versões de objetos.