From 0350c37ec1d6a4e7f9dc7bca290a2270ec156c8e Mon Sep 17 00:00:00 2001 From: Kevin Risden <risdenk@users.noreply.github.com> Date: Sun, 10 Sep 2017 16:07:16 -0500 Subject: [PATCH] [s3] Use AWS IOUtils to read object data (#1021) --- s3/src/main/java/com/yahoo/ycsb/db/S3Client.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/s3/src/main/java/com/yahoo/ycsb/db/S3Client.java b/s3/src/main/java/com/yahoo/ycsb/db/S3Client.java index 8be4738a..3f0c9f65 100644 --- a/s3/src/main/java/com/yahoo/ycsb/db/S3Client.java +++ b/s3/src/main/java/com/yahoo/ycsb/db/S3Client.java @@ -28,6 +28,7 @@ import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.net.*; +import com.amazonaws.util.IOUtils; import com.yahoo.ycsb.ByteArrayByteIterator; import com.yahoo.ycsb.ByteIterator; import com.yahoo.ycsb.DB; @@ -427,14 +428,7 @@ public class S3Client extends DB { Map.Entry<S3Object, ObjectMetadata> objectAndMetadata = getS3ObjectAndMetadata(bucket, key, ssecLocal); InputStream objectData = objectAndMetadata.getKey().getObjectContent(); //consuming the stream // writing the stream to bytes and to results - int sizeOfFile = (int)objectAndMetadata.getValue().getContentLength(); - byte[] inputStreamToByte = new byte[sizeOfFile]; - int len; - int offset = 0; - while ((len = objectData.read(inputStreamToByte, offset, sizeOfFile - offset)) > 0) { - offset += len; - } - result.put(key, new ByteArrayByteIterator(inputStreamToByte)); + result.put(key, new ByteArrayByteIterator(IOUtils.toByteArray(objectData))); objectData.close(); objectAndMetadata.getKey().close(); } catch (Exception e){ -- GitLab