A funcionalidade de controlo de versões de objetos preserva os objetos eliminados como objetos com controlo de versões e não atuais que permanecem acessíveis no seu contentor até serem removidos explicitamente. Esta funcionalidade é usada para monitorizar alterações a objetos e permitir a recuperação de versões específicas de um objeto. Esta página descreve a funcionalidade e as opções disponíveis quando a usa.
Recomendamos que use a eliminação temporária em vez do controlo de versões de objetos para se proteger contra a perda permanente de dados devido a eliminações acidentais ou maliciosas. Para saber mais sobre quando usar a eliminação temporária e o controlo de versões de objetos, consulte as Considerações.
Introdução
Ativa o controlo de versões de objetos para um contentor. Depois de ativado:
O Cloud Storage retém uma versão de objeto não atual sempre que substitui ou elimina uma versão de objeto atual, desde que não especifique o número de geração da versão atual.
As versões não atuais retêm o nome do objeto, mas são identificadas de forma exclusiva pelo respetivo número de geração.
As versões não atuais só aparecem em pedidos que as chamam explicitamente para serem incluídas.
Pode eliminar uma versão não atual de um objeto incluindo o número de geração no pedido de eliminação ou usando a Gestão do ciclo de vida de objetos.
Num contentor com a eliminação reversível ativada, quando elimina um objeto não atual, o Cloud Storage altera o respetivo estado para eliminado reversivelmente. Um objeto eliminado temporariamente é eliminado permanentemente após o período de retenção da eliminação temporária expirar.
As versões não atuais dos objetos existem independentemente de qualquer versão publicada.
Se desativar a criação de versões de objetos:
O contentor deixa de acumular novas versões não atuais de objetos.
As versões de objetos que já existem no contentor não são afetadas.
Considerações
Não existe um limite predefinido para o número de versões de objetos que pode ter. Cada versão não atual de um objeto é cobrada à mesma taxa que tinha quando estava ativa.
A duração do armazenamento de uma versão de objeto removida de um contentor baseia-se na hora em que foi adicionada ao contentor e não na hora em que se tornou não atual.
Se ativar o controlo de versões, considere usar a Gestão do ciclo de vida de objetos, que pode remover versões mais antigas de um objeto após um período especificado ou à medida que as versões mais recentes se tornam não atuais. Para uma possível configuração, consulte o exemplo de configuração do ciclo de vida para eliminar objetos.
Para determinar se deve ativar a criação de versões de objetos ou a eliminação temporária no seu contentor, considere os seguintes pontos:
Se quiser evitar a perda permanente de dados devido a eliminações acidentais ou maliciosas, use a eliminação temporária em vez do controlo de versões de objetos. A eliminação temporária oferece proteção ao nível do contentor, retendo todos os objetos ativos ou não atuais eliminados recentemente. Também pode proteger contra eliminações ao nível do contentor.
Se tiver requisitos de faturação específicos e tiver configurado regras de gestão do ciclo de vida de objetos para reter um número especificado de versões não atuais, use a versão de objetos.
Neste cenário, só recebe proteção parcial contra eliminações acidentais, uma vez que a criação de versões de objetos não protege contra eventos ao nível do contentor nem eliminações indesejadas de objetos não atuais.
Os objetos não atuais são acessíveis e legíveis, enquanto os objetos eliminados temporariamente são retidos offline e não são legíveis. A restauração de objetos eliminados temporariamente requer autorizações de IAM específicas que estão disponíveis para a função de IAM de administrador do armazenamento (
roles/storage.admin
).Se quiser aceder aos objetos eliminados mais recentemente e ter um elevado nível de proteção contra a perda permanente de dados devido a eventos de eliminação acidentais e maliciosos, pode ativar a criação de versões de objetos e a eliminação temporária no mesmo contentor. Pode configurar a política de gestão do ciclo de vida de objetos para eliminar automaticamente as versões não atuais após um número específico de dias e, em seguida, usar a eliminação reversível para fornecer uma camada de proteção adicional.
Metadados de objetos não atuais
As versões não atuais dos objetos têm os seus próprios metadados, que podem diferir dos metadados da versão publicada. Mais importante ainda, uma versão não atual retém as respetivas ACLs e não tem necessariamente as mesmas autorizações que a versão em direto.
Cada versão, quer seja atual ou não, tem um conjunto de metadados. Apenas o número de metageração mais recente se refere aos metadados. Não é possível usar números de metageração mais antigos para aceder a metadados que foram alterados desde então.
Pode atualizar os metadados de uma versão não atual de um objeto especificando o respetivo generation
no seu pedido. Para garantir uma semântica de leitura-modificação-escrita segura, pode usar uma condição prévia de correspondência de metageração. A utilização desta pré-condição faz com que a atualização falhe se os metadados que está a tentar atualizar tiverem sido alterados entre o momento em que leu os metadados e enviou a atualização.
Exemplo de controlo de versões de objetos
Este exemplo mostra o que acontece ao objeto cat.jpg
num contentor com a gestão de versões de objetos e a eliminação reversível ativadas à medida que substitui, atualiza e elimina o objeto.
- Carrega uma nova imagem
Quando carrega
cat.jpg
pela primeira vez para o Cloud Storage, recebe umgeneration
número e ummetageneration
número. Neste exemplo, o número de geração é1360887697105000
. Como o objeto é novo, o número demetageneration
é1
.cat.jpg
recebe os númerosgeneration
emetageneration
, mesmo que a versão de objetos não esteja ativada. Pode obter estes números vendo os metadados do objeto.- Ativa a criação de versões de objetos
Neste ponto, decide ativar a criação de versões de objetos para o seu contentor. Esta ação não afeta os números
generation
nemmetageneration
decat.jpg
.- Altera os metadados da imagem
Atualiza os metadados de
cat.jpg
adicionando metadados personalizados:color:black
. A atualização dos metadados faz com que o valor demetageneration
decat.jpg
aumente, neste caso, de1
para2
. No entanto, o objeto em si permanece inalterado, pelo que o Cloud Storage continua a armazenar apenas uma versão decat.jpg
, e a versão continua a ter um númerogeneration
de1360887697105000
.- Carrega uma nova versão da imagem
Carrega uma nova versão de
cat.jpg
para o seu contentor do Cloud Storage. Quando o faz, o controlo de versões de objetos move o objetocat.jpg
existente para um estado não atual. A versão não atual mantém a mesma classe de armazenamento e os metadados que tinha anteriormente. A versão não atual aparece apenas se fizer uma listagem com versões: não aparece em comandos de listagem normais. A versão não atual é agora referenciada como:cat.jpg#1360887697105000
.Entretanto, o
cat.jpg
carregado recentemente torna-se a versão publicada do objeto. Este novocat.jpg
recebe o seu próprio númerogeneration
. Neste exemplo, é1360887759327000
. Também recebe os seus próprios metadados e ummetageneration
número de1
, o que significa que não contém os metadadoscolor:black
a menos que os especifique. Quando acede ou modificacat.jpg,
, esta é a versão usada. Em alternativa, pode consultar esta versão decat.jpg
através do respetivo númerogeneration
. Por exemplo, quando usa a CLI do Google Cloud, refere-se a ela comocat.jpg#1360887759327000
.- Elimina a versão publicada da imagem
Agora, elimina
cat.jpg
. Quando o faz, a versão com o número de geração1360887759327000
torna-se não atual. O seu contentor tem agora duas versões não atuais decat.jpg
e nenhuma versão publicada. Pode continuar a consultar qualquer versão não atual através do respetivo númerogeneration
, mas se tentar aceder acat.jpg
sem um númerogeneration
, ocorre uma falha.Da mesma forma, uma listagem de objetos normal do contentor não mostra
cat.jpg
como um dos objetos no contentor. Para obter informações sobre a listagem de versões não atuais de objetos, consulte o artigo Listar versões de objetos não atuais.- Desativa a criação de versões de objetos
Desativar o controlo de versões de objetos, o que impede que os objetos se tornem obsoletos. As versões não atuais existentes de objetos permanecem no Cloud Storage. Mesmo que o controlo de versões de objetos esteja desativado, os objetos
cat.jpg#1360887697105000
ecat.jpg#1360887759327000
permanecem armazenados no seu contentor até os eliminar.- Restaura uma das versões não atuais
Mesmo com a funcionalidade de controlo de versões de objetos desativada, pode fazer uma cópia de uma das versões não atuais existentes, o que restaura efetivamente a versão. Depois de o fazer, o seu contentor tem três versões de
cat.jpg
: as duas versões não atuais e a versão publicada resultante da restauração.- Elimina uma das versões não atuais
Pode eliminar uma versão não atual de um objeto manualmente ou através da Gestão do ciclo de vida de objetos.
Quando elimina uma versão não atual,
cat.jpg#1360887697105000
, esta é eliminada temporariamente. Este objeto eliminado temporariamente é retido durante o período de retenção de eliminação temporária especificado na política de eliminação temporária do contentor. Após a expiração da duração da retenção, o Cloud Storage elimina permanentemente a versão eliminada temporariamente deste objeto.- Restaurar uma das versões de objetos eliminadas temporariamente
Mesmo com o controlo de versões de objetos desativado, pode restaurar uma versão eliminada temporariamente de um objeto não atual. É restaurada uma cópia de uma versão eliminada temporariamente como a versão ativa com novos metadados do objeto e uma nova data de criação. O objeto eliminado temporariamente original também permanece no contentor e é eliminado permanentemente após o prazo de retenção da eliminação temporária expirar.
Referência da gestão de versões de objetos
Esta tabela de referência mostra o que acontece quando realiza determinadas ações com a gestão de versões de objetos.
Estado do controlo de versões de objetos | Estado de eliminação recuperável | Ação | Resultado |
---|---|---|---|
Desativado | Desativado | ||
Eliminar dog.png . |
dog.png é eliminado permanentemente. |
||
Elimine uma versão não atual de dog.png especificando o respetivo número de geração.1 |
A versão não atual é eliminada permanentemente. | ||
Substitua dog.png por uma nova versão. |
A nova versão substitui a versão ativa e recebe um novo número de geração. A versão publicada antiga é eliminada permanentemente. | ||
Copie uma versão não atual de dog.png para substituir a versão publicada.1 |
Uma cópia da versão não atual substitui a versão ativa e recebe um novo número de geração. A versão publicada antiga é eliminada permanentemente. | ||
Desativado | Ativado | ||
Eliminar dog.png . |
dog.png é eliminado temporariamente. |
||
Elimine uma versão não atual de dog.png especificando o respetivo número de geração.1 |
A versão não atual é eliminada temporariamente. | ||
Substitua dog.png por uma nova versão. |
A nova versão substitui a versão ativa e recebe um novo número de geração. A versão antiga em direto é eliminada de forma reversível. | ||
Copie uma versão não atual de dog.png para substituir a versão publicada.1 |
Uma cópia da versão não atual substitui a versão ativa e recebe um novo número de geração. A versão antiga em direto é eliminada de forma reversível. | ||
Ativado | Desativado | ||
Eliminar a versão em direto de dog.png sem especificar o número de geração. |
A versão ativa torna-se uma versão não atual e mantém o mesmo número de geração. | ||
Elimine a versão publicada de dog.png especificando o respetivo número de geração. |
A versão publicada é eliminada permanentemente. | ||
Elimine uma versão não atual do dog.png especificando o número da geração. |
A versão não atual é eliminada permanentemente. | ||
Substitua dog.png por uma nova versão. |
A nova versão substitui a versão ativa e recebe um novo número de geração. A versão ativa antiga torna-se uma versão não atual e mantém o mesmo número de geração. | ||
Copiar uma versão não atual de dog.png para substituir a versão publicada. |
Uma cópia da versão não atual substitui a versão ativa e recebe um novo número de geração. A versão ativa antiga torna-se uma versão não atual e mantém o mesmo número de geração. | ||
Ativado | Ativado | ||
Eliminar a versão em direto de dog.png sem especificar o número de geração. |
A versão ativa torna-se uma versão não atual e mantém o mesmo número de geração. | ||
Elimine a versão publicada de dog.png especificando o respetivo número de geração. |
A versão publicada é eliminada de forma reversível. | ||
Elimine uma versão não atual do dog.png especificando o número da geração. |
A versão não atual é eliminada temporariamente. | ||
Substitua dog.png por uma nova versão. |
A nova versão substitui a versão ativa e recebe um novo número de geração. A versão ativa antiga torna-se uma versão não atual e mantém o mesmo número de geração. | ||
Copiar uma versão não atual de dog.png para substituir a versão publicada. |
Uma cópia da versão não atual substitui a versão ativa e recebe um novo número de geração. A versão ativa antiga torna-se uma versão não atual e mantém o mesmo número de geração. |
1 Pode existir uma versão não atual se o bucket tiver o controlo de versões de objetos ativado anteriormente.
Comportamento de restauro
Pode restaurar eficazmente uma versão de objeto não atual para a versão atual em direto. Consulte o artigo Restaurar versões de objetos não atuais para ver um guia passo a passo para o fazer.
Quando o faz com o controlo de versões de objetos ativado, se já existir uma versão publicada do objeto no seu contentor, o Cloud Storage substitui a versão publicada existente, mas também a retém como uma nova versão não atual. Nesse caso, o contentor contém posteriormente o objeto substituído (agora não atual) e duas cópias do objeto que era anteriormente não atual (uma cópia ativa e uma cópia ainda não atual), que incorrem em custos de armazenamento. Para evitar cobranças desnecessárias, elimine a versão não atual que usou para criar a cópia dinâmica atual ou configure a gestão do ciclo de vida dos objetos para remover objetos não atuais quando cumprirem as condições que especificar.
O que se segue?
- Saiba como ativar o controlo de versões de objetos.
- Trabalhe com objetos não atuais.
- Saiba mais sobre as propriedades de objetos de geração e metageração.
- Saiba mais sobre a gestão do ciclo de vida de objetos, que lhe permite gerir automaticamente as versões de objetos.
- Veja um exemplo de gestão do ciclo de vida de objetos que funciona com a criação de várias versões de objetos.