

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Diferencias en la operación de streaming entre 1.x y 2.x del AWS SDK para Java
<a name="migration-streaming-ops"></a>

Las operaciones de streaming, como Amazon S3 `getObject` y sus `putObject` métodos, admiten el no bloqueo I/O en la versión 2.x del SDK. Como resultado, los objetos del modelo de solicitud y respuesta ya no toman un `InputStream` como parámetro. En su lugar, para solicitudes sincrónicas, el objeto de solicitud acepta `RequestBody`, que es un flujo de bytes. El equivalente asincrónico acepta un `AsyncRequestBody`.

**Example de la operación `putObject` de Amazon S3 en 1.x**  

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

**Example de la operación `putObject` de Amazon S3 en 2.x**  

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

Un objeto de respuesta de streaming acepta un `ResponseTransformer` para clientes sincrónicos y un `AsyncResponseTransformer` para asincrónicos en V2.

**Example de la operación `getObject` de Amazon S3 en 1.x**  

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

**Example de la operación `getObject` de Amazon S3 en 2.x**  

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

En el SDK para Java 2.x, las operaciones de respuesta de streaming tienen un método `AsBytes` para cargar la respuesta en la memoria y simplificar las conversiones de tipo común en la memoria.