Diferencias en operaciones de streaming entre 1.x y 2.x de AWS SDK for Java - AWS SDK for Java 2.x

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 operaciones de streaming entre 1.x y 2.x de AWS SDK for Java

Las operaciones de streaming, como Amazon S3 y los métodos getObject y putObject, admiten E/S no bloqueante 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.

ejemplo de la operación putObject de Amazon S3 en 1.x
s3client.putObject(BUCKET, KEY, new File(file_path));
ejemplo 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.

ejemplo 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));
ejemplo 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.