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 8be4738ac0a5adc38e651e46a003251cd5ae3fb3..3f0c9f6525e3c5bf38bf06950e770f9624df21d7 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){