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 3f0c9f6525e3c5bf38bf06950e770f9624df21d7..8f5485341b1b1510eef5a13c9ae8ee3256c0bf73 100644 --- a/s3/src/main/java/com/yahoo/ycsb/db/S3Client.java +++ b/s3/src/main/java/com/yahoo/ycsb/db/S3Client.java @@ -51,7 +51,6 @@ import com.amazonaws.services.s3.model.ObjectListing; import com.amazonaws.services.s3.model.S3ObjectSummary; import com.amazonaws.services.s3.model.SSECustomerKey; import com.amazonaws.services.s3.model.PutObjectRequest; -import com.amazonaws.services.s3.model.GetObjectMetadataRequest; /** * S3 Storage client for YCSB framework. @@ -350,11 +349,11 @@ public class S3Client extends DB { totalSize = sizeArray*fieldCount; } else { try { - Map.Entry<S3Object, ObjectMetadata> objectAndMetadata = getS3ObjectAndMetadata(bucket, key, ssecLocal); - int sizeOfFile = (int)objectAndMetadata.getValue().getContentLength(); + S3Object object = getS3ObjectAndMetadata(bucket, key, ssecLocal); + int sizeOfFile = (int)object.getObjectMetadata().getContentLength(); fieldCount = sizeOfFile/sizeArray; totalSize = sizeOfFile; - objectAndMetadata.getKey().close(); + object.close(); } catch (Exception e){ System.err.println("Not possible to get the object :"+key); e.printStackTrace(); @@ -425,12 +424,12 @@ public class S3Client extends DB { protected Status readFromStorage(String bucket, String key, Map<String, ByteIterator> result, SSECustomerKey ssecLocal) { try { - Map.Entry<S3Object, ObjectMetadata> objectAndMetadata = getS3ObjectAndMetadata(bucket, key, ssecLocal); - InputStream objectData = objectAndMetadata.getKey().getObjectContent(); //consuming the stream + S3Object object = getS3ObjectAndMetadata(bucket, key, ssecLocal); + InputStream objectData = object.getObjectContent(); //consuming the stream // writing the stream to bytes and to results result.put(key, new ByteArrayByteIterator(IOUtils.toByteArray(objectData))); objectData.close(); - objectAndMetadata.getKey().close(); + object.close(); } catch (Exception e){ System.err.println("Not possible to get the object "+key); e.printStackTrace(); @@ -440,23 +439,17 @@ public class S3Client extends DB { return Status.OK; } - private Map.Entry<S3Object, ObjectMetadata> getS3ObjectAndMetadata(String bucket, + private S3Object getS3ObjectAndMetadata(String bucket, String key, SSECustomerKey ssecLocal) { GetObjectRequest getObjectRequest; - GetObjectMetadataRequest getObjectMetadataRequest; if (ssecLocal != null) { getObjectRequest = new GetObjectRequest(bucket, key).withSSECustomerKey(ssecLocal); - getObjectMetadataRequest = new GetObjectMetadataRequest(bucket, - key).withSSECustomerKey(ssecLocal); } else { getObjectRequest = new GetObjectRequest(bucket, key); - getObjectMetadataRequest = new GetObjectMetadataRequest(bucket, - key); } - return new AbstractMap.SimpleEntry<>(s3Client.getObject(getObjectRequest), - s3Client.getObjectMetadata(getObjectMetadataRequest)); + return s3Client.getObject(getObjectRequest); } /**