diff --git a/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java b/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java index c8349157dba2..72f3d6d4f328 100644 --- a/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java +++ b/src/main/java/com/amazonaws/services/s3/AmazonS3Client.java @@ -944,7 +944,8 @@ public PutObjectResult putObject(PutObjectRequest putObjectRequest) request.addHeader(Headers.STORAGE_CLASS, putObjectRequest.getStorageClass()); } - if (metadata.getContentLength() <= 0) { + // Use internal interface to differentiate 0 from unset. + if (metadata.getRawMetadata().get(Headers.CONTENT_LENGTH) == null) { /* * There's nothing we can do except for let the HTTP client buffer * the input stream contents if the caller doesn't tell us how much