

# Anexar dados a objetos em buckets de diretórios
<a name="directory-buckets-objects-append"></a>

É 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](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#API_PutObject_Errors). 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-using-multipart-upload.html).

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-getting-started.html).

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 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) e [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) 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 [https://aws.amazon.com/s3/pricing/](https://aws.amazon.com/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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mountpoint.html). 

 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-data-protection.html.html). 

## Anexar dados a objetos usando a AWS CLI, os AWS SDKs e a API REST
<a name="directory-bucket-append"></a>

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

### Usar a AWS CLI
<a name="set-append--cli"></a>

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
```

### Usar SDKs da AWS
<a name="directory-bucket-append-sdks"></a>

------
#### [ SDK for Java ]

Você pode usar o AWS SDK para 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)
```

------

### Uso da API REST
<a name="directory-bucket-append-api"></a>

 Você pode enviar solicitações REST para anexar um objeto. Para obter mais informações, consulte [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#API_PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html#API_PutObject). 