Esta página descreve como listar, aceder, restaurar e eliminar objetos não atuais, o que normalmente se aplica a contentores com a funcionalidade Controlo de versões de objetos ativado.
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.create
storage.objects.delete
storage.objects.get
storage.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 dos 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.
É aberta 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
cURL
para 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
cURL
para chamar a API XML, com um pedido deGET
contentor 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
Version
que contém informações sobre cada objeto. - Um elemento
DeletedTime
que 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
NextGenerationMarker
se 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 consultagenerationmarker
de pedidos subsequentes para retomar a partir do último ponto. O parâmetro de consultagenerationmarker
é usado da mesma forma que usa o parâmetro de consultamarker
para 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, continue 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 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, continue 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
cURL
para chamar a API XML com um pedido deHEAD
objeto: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 efetivamente restaura a versão. Se já existir uma versão publicada e o bucket 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.
É aberta 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
cURL
para chamar a API JSON com um pedido dePOST
objeto: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
cURL
para chamar a API XML, com um pedido dePUT
objeto: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 de eliminação da versão.
Confirme que quer eliminar o objeto escrevendo
delete
no 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
cURL
para chamar a API JSON com um pedido deDELETE
objeto: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
cURL
para chamar a API XML, com um pedido deDELETE
objeto: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.
- Ative ou desative a funcionalidade de controlo 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.