Amazon S3 já oferece suporte a gravações condicionais
O Amazon S3 adiciona suporte para gravações condicionais que podem verificar a existência de um objeto antes de criá-lo. Esse recurso pode ajudar você a impedir com mais facilidade a substituição de qualquer objeto existente por uma aplicação que faz upload de dados. Você pode realizar gravações condicionais usando solicitações da API PutObject ou CompleteMultipartUpload em buckets de propósito geral e de diretório.
Usando gravações condicionais, você pode simplificar a forma como aplicações distribuídas com vários clientes atualizam dados simultaneamente em conjuntos de dados compartilhados. Cada cliente pode gravar objetos condicionalmente, garantindo que ele não substitua nenhum objeto já gravado por outro cliente. Isso significa que você não precisa mais criar mecanismos de consenso do lado do cliente para coordenar atualizações ou usar solicitações de API adicionais para verificar a presença de um objeto antes de fazer o upload dos dados. Em vez disso, você pode transferir essas validações de forma confiável para o S3, obtendo melhor performance e eficiência para analytics em grande escala, machine learning distribuído e outras workloads altamente paralelizadas. Para usar gravações condicionais, você pode adicionar o cabeçalho condicional if-none-match do HTTP em conjunto com as solicitações de API PutObject e CompleteMultipartUpload.
Esse atributo está disponível sem custo adicional em todas as regiões da AWS, incluindo as regiões AWS GovCloud (EUA) e China. Você pode usar o SDK, a API ou a CLI da AWS para realizar gravações condicionais. Para saber mais sobre gravações condicionais, acesse o Guia do usuário do S3.