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

Reply via email to