http: handle request range like Amazon S3. (#2112)

Fixes #2098
This commit is contained in:
Bala FA
2016-07-07 01:20:24 +05:30
committed by Harshavardhana
parent 26b7d79a85
commit a51bb1d728
5 changed files with 158 additions and 100 deletions

View File

@@ -74,12 +74,10 @@ func setObjectHeaders(w http.ResponseWriter, objInfo ObjectInfo, contentRange *h
w.Header().Set("Content-Length", strconv.FormatInt(objInfo.Size, 10))
// for providing ranged content
if contentRange != nil {
if contentRange.start > 0 || contentRange.length > 0 {
// override content-length
w.Header().Set("Content-Length", strconv.FormatInt(contentRange.length, 10))
w.Header().Set("Content-Range", contentRange.String())
w.WriteHeader(http.StatusPartialContent)
}
if contentRange != nil && contentRange.firstBytePos > -1 {
// override content-length
w.Header().Set("Content-Length", strconv.FormatInt(contentRange.getLength(), 10))
w.Header().Set("Content-Range", contentRange.String())
w.WriteHeader(http.StatusPartialContent)
}
}