

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Diferenças de operação de streaming entre 1.x e 2.x do AWS SDK para Java
<a name="migration-streaming-ops"></a>

As operações de streaming, como Amazon S3 `getObject` e `putObject` métodos, oferecem suporte ao não bloqueio I/O na versão 2.x do SDK. Como resultado, os objetos de modelo de solicitação e resposta não usam mais `InputStream` como parâmetro. Em vez disso, para solicitações síncronas, o objeto de solicitação aceita `RequestBody`, que é um fluxo de bytes. O equivalente assíncrono aceita um `AsyncRequestBody`.

**Example da operação `putObject` do Amazon S3 na versão 1.x**  

```
s3client.putObject(BUCKET, KEY, new File(file_path));
```

**Example da operação `putObject` do Amazon S3 na versão 2.x**  

```
s3client.putObject(PutObjectRequest.builder()
                                 .bucket(BUCKET)
                                 .key(KEY)
                                 .build(),
                 RequestBody.of(Paths.get("myfile.in")));
```

Em paralelo, o objeto de resposta aceita `ResponseTransformer` para clientes síncronos e `AsyncResponseTransformer` para clientes assíncronos na V2.

**Example da operação `getObject` do Amazon S3 na versão 1.x**  

```
S3Object o = s3.getObject(bucket, key);
S3ObjectInputStream s3is = o.getObjectContent();
FileOutputStream fos = new FileOutputStream(new File(key));
```

**Example da operação `getObject` do Amazon S3 na versão 2.x**  

```
s3client.getObject(GetObjectRequest.builder().bucket(bucket).key(key).build(),
		ResponseTransformer.toFile(Paths.get("key")));
```

No SDK para Java 2.x, as operações de resposta de streaming têm um método `AsBytes` para carregar a resposta na memória e simplificar as conversões de tipos comuns na memória.