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 ter mais informações, consulte Gerenciando seu ciclo de vida de armazenamento. Para ter informações sobre como criar configurações 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 configuração de ciclo de vida de expiração do objeto em seu bucket sem versionamento e quiser manter o mesmo comportamento de exclusão permanente quando ativar o versionamento, precisará adicionar uma configuração de expiração de versão não corrente. A política de expiração do ciclo de vida não corrente gerencia as exclusões de versões de objeto não correntes no bucket habilitado para versão. (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.