Esta página descreve como listar, aceder, restaurar e eliminar objetos não atuais, o que normalmente se aplica a contentores com a funcionalidade de controlo de versões de objetos ativada. Os objetos não atuais também são denominados objetos com versões.
Antes de começar
Para trabalhar com objetos não atuais, conclua os seguintes passos pré-requisitos.
Ative o controlo de versões de objetos
Se ainda não o fez, ative a criação de versões de objetos no seu contentor.
Obtenha as funções necessárias
Para receber as autorizações de que precisa para gerir objetos não atuais, peça ao seu administrador para lhe conceder a função de utilizador de objetos de armazenamento (roles/storage.objectUser) do IAM no projeto. Esta função predefinida contém as
autorizações necessárias para gerir objetos não atuais. Para ver as autorizações exatas necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
storage.objects.createstorage.objects.deletestorage.objects.getstorage.objects.list
Também pode conseguir estas autorizações com funções personalizadas.
Para informações sobre a atribuição de funções em projetos, consulte o artigo Faça a gestão do acesso a projetos.
Consoante o seu exemplo de utilização, pode precisar de autorizações adicionais ou funções alternativas:
Se planeia usar a Google Cloud consola para realizar as tarefas nesta página, também precisa da autorização
storage.buckets.list, que não está incluída na função de utilizador do objeto de armazenamento (roles/storage.objectUser). Para receber esta autorização, peça ao seu administrador para lhe conceder a função de administrador do armazenamento (roles/storage.admin) no projeto.Se o acesso uniforme ao nível do contentor estiver desativado para o seu contentor, precisa de autorizações adicionais nos seguintes cenários:
Se planeia devolver objetos não atuais juntamente com as respetivas ACLs, também precisa da autorização
storage.objects.getIamPolicy, que não está incluída na função de utilizador do objeto de armazenamento (roles/storage.objectUser). Para receber esta autorização, peça ao seu administrador para lhe conceder a função de administrador de objetos de armazenamento (roles/storage.objectAdmin) no projeto.Se planeia mudar o nome ou restaurar objetos não atuais que tenham ACLs, também precisa da autorização
storage.objects.setIamPolicy, que não está incluída na função de utilizador de objetos de armazenamento (roles/storage.objectUser). Para receber esta autorização, peça ao seu administrador para lhe conceder a função de administrador de objetos de armazenamento (roles/storage.objectAdmin) no projeto.
Listar versões de objetos não atuais
Para listar as versões atuais e não atuais de objetos e ver os respetivos
generation números:
Consola
- Na Google Cloud consola, aceda à página Recipientes do Cloud Storage.
Na lista de contentores, clique no nome do contentor que contém o objeto pretendido.
É aberta a página Detalhes do contentor, com o separador Objetos selecionado.
Para ver objetos não atuais, clique no menu pendente Mostrar e selecione Objetos ativos e não atuais.
Na lista de objetos, clique no nome do objeto cujas versões quer ver.
É apresentada a página Detalhes do objeto, com o separador Objeto em direto selecionado.
Clique no separador Histórico de versões para ver todas as versões do objeto.
Linha de comandos
Use o comando gcloud storage ls --all-versions:
gcloud storage ls --all-versions gs://BUCKET_NAME
Onde BUCKET_NAME é o nome do contentor que contém os objetos. Por exemplo, my-bucket.
A resposta tem o seguinte aspeto:
gs://BUCKET_NAME/OBJECT_NAME1#GENERATION_NUMBER1 gs://BUCKET_NAME/OBJECT_NAME2#GENERATION_NUMBER2 gs://BUCKET_NAME/OBJECT_NAME3#GENERATION_NUMBER3 ...
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization.Use
cURLpara chamar a API JSON com um pedido de 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"
Onde
BUCKET_NAMEé o nome do contentor que contém os objetos. Por exemplo,my-bucket.
As versões não atuais dos objetos têm uma propriedade timeDeleted.
API XML
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization.Use
cURLpara chamar a API XML, com um pedido deGETcontentor e o 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"
Onde
BUCKET_NAMEé o nome do contentor que contém os objetos. Por exemplo,my-bucket.
Existem algumas diferenças nos resultados do pedido GET quando usa o parâmetro de consulta versions em comparação com quando não o usa.
Em concreto, o Cloud Storage devolve as seguintes informações quando
inclui um parâmetro de consulta versions no seu pedido:
- Um elemento
Versionque contém informações sobre cada objeto. - Um elemento
DeletedTimeque contém a hora em que a versão do objeto deixou de ser atual (foi eliminada ou substituída). - Um elemento `IsLatest que indica se o objeto específico é a versão mais recente.
- É devolvido um elemento
NextGenerationMarkerse a listagem de objetos for uma listagem parcial, o que ocorre quando tem muitas versões de objetos num contentor. Use o valor deste elemento no parâmetro de consultagenerationmarkerde pedidos subsequentes para retomar a partir do seu último ponto. O parâmetro de consultagenerationmarkeré usado da mesma forma que usa o parâmetro de consultamarkerpara navegar numa ficha de um contentor sem versão.
Aceda a versões de objetos não atuais
Para usar a versão não atual de um objeto quando realizar tarefas como: transferir o objeto, ver os respetivos metadados ou atualizar os respetivos metadados:
Consola
O acesso geral a uma versão não atual não está disponível na Google Cloud consola. Usando a Google Cloud consola, só pode mover, copiar, restaurar ou eliminar uma versão não atual. Estas ações são realizadas a partir da lista do histórico de versões de um objeto.
Linha de comandos
Anexe o número de geração da versão não atual ao nome do objeto:
OBJECT_NAME#GENERATION_NUMBER
Onde:
OBJECT_NAMEé o nome da versão não atual. Por exemplo,pets/dog.png.GENERATION_NUMBERé o número de geração da versão não atual. Por exemplo,1560468815691234.
Usando a string do passo anterior, proceda como faria normalmente para a versão em direto 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 não atual ao URI do objeto:
https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?generation=GENERATION_NUMBER
Onde:
BUCKET_NAMEé o nome do contentor que contém a versão não atual. Por exemplo,my-bucket.OBJECT_NAMEé o nome com codificação URL da versão não atual. Por exemplo,pets/dog.png, codificado por URL comopets%2Fdog.png.GENERATION_NUMBERé o número de geração da versão não atual. Por exemplo,1560468815691234.
Usando o URI do passo anterior, proceda como faria normalmente para a versão em direto do objeto. Por exemplo, para ver os metadados de uma versão de objeto não atual, use o cURL para chamar a API JSON com um pedido 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 não atual ao URI do objeto:
https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER
Onde:
BUCKET_NAMEé o nome do contentor que contém a versão não atual. Por exemplo,my-bucket.OBJECT_NAMEé o nome com codificação URL da versão não atual. Por exemplo,pets/dog.png, codificado por URL comopets%2Fdog.png.GENERATION_NUMBERé o número de geração da versão não atual. Por exemplo,1560468815691234.
Usando o URI do passo anterior, proceda como faria normalmente para a versão em direto do objeto. Por exemplo, para ver os metadados de uma versão de objeto não atual, use
cURLpara chamar a API XML com um pedido deHEADobjeto:curl -I GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/my-bucket/pets/dog.png?generation=1560468815691234"
Restaure versões de objetos não atuais
No Cloud Storage, restaurar uma versão de objeto não atual significa fazer uma cópia da mesma. Quando o faz, a cópia torna-se a versão publicada, o que restaura efetivamente a versão. Se já existir uma versão publicada e o contentor tiver a funcionalidade de controlo de versões de objetos ativada, a restauração da versão não atual faz com que a versão publicada pré-existente se torne não atual.
Consola
- Na Google Cloud consola, aceda à página Recipientes do Cloud Storage.
Na lista de contentores, clique no nome do contentor que contém o objeto pretendido.
É aberta a página Detalhes do contentor, com o separador Objetos selecionado.
Para ver objetos não atuais, clique no menu pendente Mostrar e selecione Objetos ativos e não atuais.
Na lista de objetos, clique no nome da versão do objeto que quer restaurar.
É apresentada a página Detalhes do objeto, com o separador Objeto em direto selecionado.
Clique no separador Histórico de versões.
Clique no botão Restaurar para a versão pretendida.
É aberto o painel de restauro da versão do objeto.
Clique em Confirm.
Linha de comandos
Use o comando gcloud storage cp:
gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER gs://BUCKET_NAME
Onde:
BUCKET_NAMEé o nome do contentor que contém a versão não atual que quer restaurar. Por exemplo,my-bucket.OBJECT_NAMEé o nome da versão não atual que quer restaurar. Por exemplo,pets/dog.png.GENERATION_NUMBERé o número de geração da versão não atual que quer restaurar. Por exemplo,1560468815691234.
Se for bem-sucedido, a resposta é semelhante ao exemplo seguinte:
Operation completed over 1 objects/58.8 KiB.
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization.Use
cURLpara chamar a API JSON com um pedido dePOSTobjeto: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"
Onde:
BUCKET_NAMEé o nome do contentor que contém a versão não atual que quer restaurar. Por exemplo,my-bucket.OBJECT_NAMEé o nome com codificação URL da versão não atual que quer restaurar. Por exemplo,pets/dog.png, URL codificado comopets%2Fdog.png.GENERATION_NUMBERé o número de geração da versão não atual que quer restaurar. Por exemplo,1560468815691234.
API XML
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization.Use
cURLpara chamar a API XML, com um pedido dePUTobjeto: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"
Onde:
BUCKET_NAMEé o nome do contentor que contém a versão não atual que quer restaurar. Por exemplo,my-bucket.OBJECT_NAMEé o nome com codificação URL da versão não atual que quer restaurar. Por exemplo,pets/dog.png, URL codificado comopets%2Fdog.png.GENERATION_NUMBERé o número de geração da versão não atual que quer restaurar. Por exemplo,1560468815691234.
Depois de restaurar a versão do objeto, a versão não atual original continua a existir no contentor. Se já não precisar da versão não atual, pode eliminá-la posteriormente ou configurar a gestão do ciclo de vida dos objetos para a remover quando cumprir as condições especificadas.
Elimine versões de objetos não atuais
Consola
- Na Google Cloud consola, aceda à página Recipientes do Cloud Storage.
Na lista de contentores, clique no nome do contentor que contém o objeto pretendido.
É aberta a página Detalhes do contentor, com o separador Objetos selecionado.
Para ver objetos não atuais, clique no menu pendente Mostrar e selecione Objetos ativos e não atuais.
Navegue para o objeto, que pode estar localizado numa pasta.
Na lista de objetos, clique no nome do objeto cuja versão quer eliminar.
É aberta a página Detalhes do objeto, com o separador Objeto em direto selecionado.
Clique no separador Histórico de versões.
Selecione a caixa de verificação da versão pretendida.
Clique no botão Eliminar.
É aberto o painel Eliminar versão.
Confirme que quer eliminar o objeto escrevendo
deleteno campo de texto.Clique em Eliminar.
Linha de comandos
Use o comando gcloud storage rm:
gcloud storage rm gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER
Onde:
BUCKET_NAMEé o nome do contentor que contém a versão não atual que quer eliminar. Por exemplo,my-bucket.OBJECT_NAMEé o nome da versão não atual que quer eliminar. Por exemplo,pets/dog.png.GENERATION_NUMBERé o número de geração da versão não atual que quer eliminar. Por exemplo,1560468815691234.
Se for bem-sucedido, a resposta é semelhante ao exemplo seguinte:
Operation completed over 1 objects.
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization.Use
cURLpara chamar a API JSON com um pedido deDELETEobjeto: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"
Onde:
BUCKET_NAMEé o nome do contentor que contém a versão não atual que quer eliminar. Por exemplo,my-bucket.OBJECT_NAMEé o nome codificado por URL da versão não atual que quer eliminar. Por exemplo,pets/dog.png, URL codificado comopets%2Fdog.png.GENERATION_NUMBERé o número de geração da versão não atual que quer eliminar. Por exemplo,1560468815691234.
API XML
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization.Use
cURLpara chamar a API XML, com um pedido deDELETEobjeto:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER"
Onde:
BUCKET_NAMEé o nome do contentor que contém a versão não atual que quer eliminar. Por exemplo,my-bucket.OBJECT_NAMEé o nome codificado por URL da versão não atual que quer eliminar. Por exemplo,pets/dog.png, URL codificado comopets%2Fdog.png.GENERATION_NUMBERé o número de geração da versão não atual que quer eliminar. Por exemplo,1560468815691234.
O que se segue?
- Saiba mais sobre o controlo de versões de objetos, incluindo um exemplo detalhado.
- Saiba como desativar a criação de versões de objetos num contentor.
- Saiba como usar a gestão do ciclo de vida de objetos para gerir automaticamente as versões de objetos.