HDDS-894. Content-length should be set for ozone s3 ranged download. Contributed by Elek Marton.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/de425550 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/de425550 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/de425550 Branch: refs/heads/HDFS-12943 Commit: de4255509adbd15fbbf9ade245ae6bb6db8b36b7 Parents: fb9deed Author: Bharat Viswanadham <bha...@apache.org> Authored: Mon Dec 3 15:17:44 2018 -0800 Committer: Bharat Viswanadham <bha...@apache.org> Committed: Mon Dec 3 15:17:44 2018 -0800 ---------------------------------------------------------------------- .../apache/hadoop/ozone/s3/endpoint/ObjectEndpoint.java | 11 ++++++++--- .../apache/hadoop/ozone/s3/endpoint/TestObjectGet.java | 2 ++ 2 files changed, 10 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/de425550/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ObjectEndpoint.java ---------------------------------------------------------------------- diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ObjectEndpoint.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ObjectEndpoint.java index c504387..fdcadfc 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ObjectEndpoint.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ObjectEndpoint.java @@ -56,6 +56,7 @@ import org.apache.hadoop.ozone.web.utils.OzoneUtils; import org.apache.hadoop.util.Time; import com.google.common.annotations.VisibleForTesting; +import static javax.ws.rs.core.HttpHeaders.CONTENT_LENGTH; import static javax.ws.rs.core.HttpHeaders.LAST_MODIFIED; import org.apache.commons.io.IOUtils; import static org.apache.hadoop.ozone.s3.util.S3Consts.ACCEPT_RANGE_HEADER; @@ -204,10 +205,12 @@ public class ObjectEndpoint extends EndpointBase { IOUtils.copy(key, dest); } }; - responseBuilder = Response.ok(output); + responseBuilder = Response + .ok(output) + .header(CONTENT_LENGTH, keyDetails.getDataSize()); } else { - LOG.info("range Header provided value is {}", rangeHeader); + LOG.debug("range Header provided value is {}", rangeHeader); OzoneInputStream key = bucket.readKey(keyPath); long startOffset = rangeHeader.getStartOffset(); @@ -229,7 +232,9 @@ public class ObjectEndpoint extends EndpointBase { copyLength); } }; - responseBuilder = Response.ok(output); + responseBuilder = Response + .ok(output) + .header(CONTENT_LENGTH, copyLength); String contentRangeVal = RANGE_HEADER_SUPPORTED_UNIT + " " + rangeHeader.getStartOffset() + "-" + rangeHeader.getEndOffset() + http://git-wip-us.apache.org/repos/asf/hadoop/blob/de425550/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectGet.java ---------------------------------------------------------------------- diff --git a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectGet.java b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectGet.java index f9df9aa..2455322 100644 --- a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectGet.java +++ b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectGet.java @@ -80,6 +80,8 @@ public class TestObjectGet { IOUtils.toString(ozoneInputStream, Charset.forName("UTF-8")); Assert.assertEquals(CONTENT, keyContent); + Assert.assertEquals("" + keyContent.length(), + response.getHeaderString("Content-Length")); DateTimeFormatter.RFC_1123_DATE_TIME .parse(response.getHeaderString("Last-Modified")); --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org