Anexar dados a objetos em buckets de diretórios - Amazon Simple Storage Service

Anexar dados a objetos em buckets de diretórios

É possível adicionar dados ao final de objetos existentes armazenados na classe de armazenamento S3 Express One Zone em buckets de diretório. Recomendamos que você use a capacidade de anexar dados a um objeto se os dados forem gravados continuamente por um período de tempo ou se você precisar ler o objeto enquanto estiver gravando nele. Anexar dados a objetos é comum em casos de uso como adição de novas entradas de log a arquivos de log ou adição de novos segmentos de vídeo a arquivos de vídeo à medida que são transcodificados e transmitidos. Ao anexar dados aos objetos, você pode simplificar aplicações que anteriormente combinavam dados no armazenamento local antes de copiar o objeto final no Amazon S3.

Não há exigência de tamanho mínimo para os dados que você pode anexar a um objeto. No entanto, o tamanho máximo dos dados que você pode anexar a um objeto em uma única solicitação é de 5 GB. Esse é o mesmo limite do maior tamanho de solicitação ao carregar dados usando qualquer API do Amazon S3.

Com cada operação de anexação bem-sucedida, você cria uma parte do objeto e cada objeto pode ter até dez mil partes. Isso significa que você pode anexar dados a um objeto até dez mil vezes. Se um objeto for criado usando o carregamento fracionado do S3, cada parte carregada será contabilizada no máximo total de dez mil partes. Por exemplo, você pode anexar até novo mil vezes a um objeto criado pelo carregamento fracionado composto por mil partes.

nota

Se você atingir o limite de peças, receberá um erro TooManyParts. Você pode usar a API CopyObject para redefinir a contagem.

Se você quiser fazer um carregamento fracionado para um objeto em paralelo e não precisar ler as partes enquanto elas estão sendo carregadas, recomendamos usar o carregamento fracionado do Amazon S3. Consulte mais informações em Usar uploads multiparte.

Anexar dados a objetos só é permitido para objetos em buckets de diretório armazenados na classe de armazenamento S3 Express One Zone. Consulte mais informações sobre a classe S3 Express One Zone em Conceitos básicos da classe S3 Express One Zone.

Para começar a anexar dados a objetos em buckets de diretório, você pode usar os AWS SDKs, a AWS CLI e a API PutObject. Ao fazer uma solicitação PutObject, você define o cabeçalho x-amz-write-offset-bytes com o tamanho do objeto ao qual está anexando. Para usar a operação de API PutObject, você deve usar a API CreateSession para estabelecer credenciais de segurança temporárias a fim de acessar os objetos nos buckets de diretório. Para ter mais informações, consulte PutObject e CreateSession na Referência de API do Amazon S3.

Cada operação de anexação bem-sucedida é cobrada como uma solicitação PutObject. Para saber mais sobre o preço, consulte Amazon S3 pricing.

nota

A partir da versão 1.12, o Mountpoint para Amazon S3 é compatível com a anexação de dados a objetos armazenados na classe S3 Express One Zone. Para começar, é necessário definir o indicador --incremental-upload para ativação. Consulte mais informações sobre o Mountpoint em Working with Mountpoint.

Se você usar um algoritmo CRC (verificação de redundância cíclica) ao fazer upload dos dados anexados, poderá recuperar somas de verificação completas baseadas em CRC do objeto usando a solicitação HeadObject ou GetObject. Se você usar o algoritmo SHA-1 ou SHA-256 ao fazer upload dos dados anexados, poderá recuperar uma soma de verificação das partes anexadas e verificar sua integridade usando as somas de verificação SHA retornadas nas respostas anteriores de PutObject. Para ter mais informações, consulte Proteção de dados e criptografia.

Anexar dados a objetos usando a AWS CLI, os AWS SDKs e a API REST

Você pode anexar dados a objetos usando a AWS Command Line Interface (AWS CLI), os AWS SDKs e a API REST.

O exemplo de comando put-object a seguir mostra como você pode usar a AWS CLI para anexar dados a um objeto. Para executar esse comando, substitua os espaços reservados de entrada do usuário por suas próprias informações

aws s3api put-object --bucket amzn-s3-demo-bucket--azid--x-s3 --key sampleinput/file001.bin --body bucket-seed/file001.bin --write-offset-bytes size-of-sampleinput/file001.bin
SDK for Java

Você pode usar o AWS SDK for Java para anexar dados a objetos.

var putObjectRequestBuilder = PutObjectRequest.builder() .key(key) .bucket(bucketName) .writeOffsetBytes(9); var response = s3Client.putObject(putObjectRequestBuilder.build());
SDK for Python
s3.put_object(Bucket='amzn-s3-demo-bucket--use2-az2--x-s3', Key='2024-11-05-sdk-test', Body=b'123456789', WriteOffsetBytes=9)

Você pode enviar solicitações REST para anexar um objeto. Para ter mais informações, consulte PutObject.