Usando o versionamento em buckets do S3 - Amazon Simple Storage Service

Usando o versionamento em buckets do S3

Versionamento no Amazon S3 é um meio de manter diversas variantes de um objeto no mesmo bucket. Você pode usar o recurso S3 Versioning para preservar, recuperar e restaurar todas as versões de cada objeto armazenado em seus buckets. Com o versionamento, você pode se recuperar mais facilmente de ações não intencionais do usuário e de falhas da aplicação. Depois de habilitar o versionamento para um bucket, se o Amazon S3 receber várias solicitações de gravação do mesmo objeto simultaneamente, ele armazenará todos esses objetos.

Buckets com versionamento habilitado podem ajudar a recuperar objetos de uma exclusão ou substituição acidental. Por exemplo, se você excluir um objeto, o Amazon S3 inserirá um marcador de exclusão em vez de remover o objeto permanentemente. O marcador de exclusão se torna a versão atual do objeto. Se você substituir um objeto, isso criará uma nova versão do objeto no bucket. Você sempre pode restaurar a versão anterior. Para obter mais informações, consulte Excluir versões de objetos de um bucket com versionamento habilitado.

Por padrão, o Versionamento do S3 está desativado em buckets e você deve ativá-lo explicitamente. Para obter mais informações, consulte Habilitar o versionamento em buckets.

nota
  • A API SOAP não é compatível com o versionamento do S3. O suporte de SOAP via HTTP está obsoleto, mas continua disponível via HTTPS. Os novos recursos do Amazon S3 não são compatíveis com SOAP.

  • As taxas normais do Amazon S3 se aplicam a cada versão de um objeto armazenado e transferido. Cada versão de um objeto é um objeto inteiro; não é apenas um diff da versão anterior. Assim, se você tiver três versões de um objeto armazenado, será cobrado pelos três objetos.

Buckets não versionados, habilitados para versão e suspensos de versão

Os buckets podem estar em um dos três estados:

  • Não versionado (o padrão)

  • Habilitado para versão

  • Com versionamento suspenso

Você habilita e suspende o versionamento no nível do bucket. Depois que um bucket é habilitado para versionamento, ele nunca pode voltar a um estado sem versionamento. Mas você pode suspender o versionamento nesse bucket.

O estado de versionamento aplica-se a todos (nunca alguns) os objetos nesse bucket. Quando você habilita o versionamento em um bucket, todos os novos objetos são versionados e recebem um ID de versão exclusivo. Os objetos que já existiam no bucket no momento em que o versionamento foi ativado serão sempre versionados e receberão um ID de versão exclusivo quando forem modificados por solicitações futuras. Observe o seguinte:

  • Os objetos que são armazenados em seu bucket antes da habilitação do versionamento têm um ID de versão null. Quando você habilita o versionamento, os objetos existentes em seu bucket não são alterados. O que muda é como o Amazon S3 trata os objetos em solicitações futuras. Para obter mais informações, consulte Trabalhar com objetos em um bucket com versionamento habilitado.

  • O proprietário do bucket (ou qualquer usuário com as devidas permissões) pode suspender o versionamento para interromper o acúmulo de versões de objetos. Quando você suspende o versionamento, os objetos existentes em seu bucket não são alterados. O que muda é como o Amazon S3 trata os objetos em solicitações futuras. Para obter mais informações, consulte Trabalhar com objetos em um bucket com versionamento suspenso.

Usando o versionamento do S3 com o ciclo de vida do S3

Para personalizar sua abordagem de retenção de dados e controlar os custos de armazenamento, use o versionamento de objetos com o S3 Lifecycle. Para obter mais informações, consulte Gerenciando seu ciclo de vida de armazenamento. Para obter informações sobre como criar políticas de ciclo de vida do S3 usando o AWS Management Console, a AWS CLI, os AWS SDKs ou a API REST, consulte Definir a configuração do ciclo de vida em um bucket.

Importante

Se você tem uma política de ciclo de vida de expiração do objeto em seu bucket sem versionamento e quer manter o mesmo comportamento de exclusão permanente quando ativar o versionamento, precisará adicionar uma política de expiração de versão desatualizada. A política de expiração do ciclo de vida gerencia as exclusões de versões desatualizadas de objeto no bucket habilitado para versionamento. (Um bucket habilitado para versionamento mantém uma versão atual e zero ou mais versões desatualizadas de objetos.) Para obter mais informações, consulte Definir a configuração do ciclo de vida em um bucket.

Para obter informações sobre como trabalhar com o Versionamento do S3, consulte os tópicos a seguir.