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 na operação de streaming entre o 1.x e o 2.x do AWS SDK for Java
As operações de streaming, como os métodos getObject e putObject do Amazon S3, oferecem suporte a E/S sem bloqueio 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.
exemplo da operação putObject do Amazon S3 na versão 1.x
s3client.putObject(BUCKET, KEY, new File(file_path));
exemplo 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.
exemplo 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));
exemplo 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.