O versionamento protege dados no nível do bucket ao preservar versões históricas de objetos quando eles são sobrescritos ou excluídos, permitindo restaurar qualquer objeto para uma versão anterior.
Casos de uso
Use o versionamento nos cenários a seguir para proteger seus dados.
-
Exclusão acidental de dados
Como o OSS não possui lixeira, o versionamento é a principal forma de recuperar dados excluídos acidentalmente.
-
Sobrescrita de arquivos
Para arquivos modificados frequentemente (unidades de cloud, ferramentas colaborativas), o versionamento permite recuperar qualquer versão anterior.
Observações de uso
-
Faturamento
O versionamento em si é gratuito. No entanto, todas as versões de objetos (atuais e históricas) geram custos de armazenamento. Use regras de ciclo de vida para excluir automaticamente versões históricas desnecessárias. Para mais informações, consulte Lifecycle rules. Solicitações e tráfego decorrentes do download ou da restauração de versões históricas também são cobrados. Metering and billing. Para interromper completamente todas as cobranças do OSS, exclua todos os dados no bucket (incluindo objetos, partes e versões anteriores) e o próprio bucket. Para mais informações, consulte Delete a bucket to stop billing.
-
Permissões
Apenas o proprietário do bucket e usuários do Resource Access Management (RAM) com a permissão PutBucketVersioning podem configure o versionamento.
-
Recursos mutuamente exclusivos
Se o versionamento de um bucket estiver ativado ou suspenso:
A regra que proíbe a sobrescrita de objetos não entra em vigor. Prohibit overwrites of objects.
O cabeçalho de solicitação
x-oss-forbid-overwrite, usado para impedir a sobrescrita de objetos, não tem efeito durante uploads. Para mais informações, consulte PutObject.
-
Versionamento e OSS-HDFS
Não ative o service OSS-HDFS e o versionamento no mesmo bucket. Isso pode causar instabilidade no service. Para garantir uma operação estável, suspenda o versionamento o mais rápido possível e configure uma regra de ciclo de vida para limpar marcadores de exclusão.
Estados de versionamento
O versionamento de um bucket pode estar em um dos três estados: Desativado (padrão), Ativado ou Suspenso.
Por padrão, o versionamento está desativado para um bucket. Uma vez ativado, o versionamento não pode retornar ao estado Desativado. Ele só pode ser suspenso.
Quando o versionamento está ativado, o OSS retém versões históricas dos objetos. Para mais informações, consulte Manage versioned objects.
Quando o versionamento está suspenso, um objeto recém-carregado substitui a versão atual de um objeto com o mesmo nome. As versões históricas existentes são mantidas. Para mais informações, consulte Manage objects in a versioning-suspended bucket.
Todas as versões de objetos geram custos de armazenamento. Use regras de ciclo de vida para mover versões para classes de armazenamento de menor custo (como Acesso Pouco Frequente ou Arquivo) ou excluir versões históricas desnecessárias. Para mais informações, consulte Reduce storage costs by combining lifecycle rules based on the last modified time with versioning.
Proteção de dados
A tabela a seguir descreve como o comportamento de sobrescrita e exclusão de objetos difere entre os estados de versionamento.
|
Estado de versionamento |
Sobrescrever um objeto |
Excluir um objeto |
|
Desativado |
O objeto existente é sobrescrito e não pode ser restaurado. É possível recuperar apenas a versão mais recente do objeto. |
O objeto é excluído permanentemente e não pode ser recuperado. |
|
Ativado |
Uma nova versão é criada. As versões históricas não são afetadas. |
O objeto é marcado como excluído. As versões históricas não são afetadas e podem ser restauradas. |
|
Suspenso |
Uma nova versão é criada. Se já existir uma versão do mesmo objeto do período de suspensão, a nova versão a substituirá. Outras versões históricas não são afetadas. |
O objeto é marcado como excluído. Se já existir um marcador de exclusão para o mesmo objeto do período de suspensão, o novo marcador o substituirá. Outras versões históricas não são afetadas. |
Ativar versionamento
Suspender versionamento
Visualizar versões
Restaurar uma versão
Operações de API relacionadas
As operações anteriores são implementadas com base em operações de API. Se o seu programa tiver requisitos de personalização elevados, chame diretamente as operações da API REST. Observe que você deve escrever manualmente o código para calcular assinaturas. Para mais informações, consulte PutBucketVersioning.
Trabalhar com políticas de retenção
Em cenários como proteção de backup (Veeam), rastreamento de alterações de ativos (diagramas de projetos de circuitos) ou arquivamento de conformidade (finanças), pode ser necessário permitir atualizações de dados mantendo todas as versões históricas imutáveis. Ative tanto o versionamento quanto uma política de retenção: o versionamento preserva versões históricas na sobrescrita ou exclusão, e a política de retenção impede que qualquer versão seja excluída ou modificada durante o período de proteção.
O versionamento e as políticas de retenção funcionam juntos com base nos seguintes princípios:
Ordem de ativação dos recursos: É possível ativar o versionamento e as políticas de retenção em qualquer ordem.
-
Configurações permitidas:
Política de retenção + Versionamento desativado
Política de retenção + Versionamento ativado
-
Restrições:
Não é possível ativar uma política de retenção para um bucket cujo versionamento esteja suspenso.
-
Após a ativação de uma política de retenção, aplicam-se as seguintes restrições ao estado de versionamento:
Não é possível alterar o estado de Ativado para Suspenso.
Não é possível alterar o estado de Desativado para Suspenso.
-
Mecanismo de proteção de versão de objeto:
A política de retenção protege todas as versões de um objeto. Nenhuma versão pode ser excluída ou modificada durante o período de proteção.
É possível carregar um objeto com o mesmo nome para criar uma nova versão, mas a nova versão também fica protegida pela política de retenção.
A política de retenção não se aplica a marcadores de exclusão. A limpeza de marcadores de exclusão não é restringida pela política de retenção.
-
Interação com replicação de dados:
Tanto os buckets de source quanto os de destino suportam configurações independentes para versionamento e políticas de retenção.
As informações de versão são transferidas normalmente durante a replicação. O bucket de destino gerencia as versões com base em sua própria configuração.
A tentativa de excluir uma versão replicada no bucket de destino falhará se ela estiver protegida por uma política de retenção, mas terá êxito após a expiração da política.