aboutsummaryrefslogtreecommitdiff
path: root/weed/server/common.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-01-14 02:59:40 -0800
committerChris Lu <chris.lu@gmail.com>2021-01-14 02:59:40 -0800
commit698f58f7c400eae6b8ca416025c8ae44b5b6a134 (patch)
treee897d5688e7f7edc10df5e44d964ef0d7ee44af1 /weed/server/common.go
parentfd1d8a2a0958e4256ac0bbd77a982c5fc2274546 (diff)
downloadseaweedfs-698f58f7c400eae6b8ca416025c8ae44b5b6a134.tar.xz
seaweedfs-698f58f7c400eae6b8ca416025c8ae44b5b6a134.zip
filer, s3: add http status 206 as late as possible
fix https://github.com/chrislusf/seaweedfs/issues/1746
Diffstat (limited to 'weed/server/common.go')
-rw-r--r--weed/server/common.go9
1 files changed, 4 insertions, 5 deletions
diff --git a/weed/server/common.go b/weed/server/common.go
index 58079032e..cf9547950 100644
--- a/weed/server/common.go
+++ b/weed/server/common.go
@@ -233,12 +233,12 @@ func adjustHeaderContentDisposition(w http.ResponseWriter, r *http.Request, file
}
}
-func processRangeRequest(r *http.Request, w http.ResponseWriter, totalSize int64, mimeType string, writeFn func(writer io.Writer, offset int64, size int64) error) {
+func processRangeRequest(r *http.Request, w http.ResponseWriter, totalSize int64, mimeType string, writeFn func(writer io.Writer, offset int64, size int64, httpStatusCode int) error) {
rangeReq := r.Header.Get("Range")
if rangeReq == "" {
w.Header().Set("Content-Length", strconv.FormatInt(totalSize, 10))
- if err := writeFn(w, 0, totalSize); err != nil {
+ if err := writeFn(w, 0, totalSize, 0); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
@@ -277,9 +277,8 @@ func processRangeRequest(r *http.Request, w http.ResponseWriter, totalSize int64
ra := ranges[0]
w.Header().Set("Content-Length", strconv.FormatInt(ra.length, 10))
w.Header().Set("Content-Range", ra.contentRange(totalSize))
- w.WriteHeader(http.StatusPartialContent)
- err = writeFn(w, ra.start, ra.length)
+ err = writeFn(w, ra.start, ra.length, http.StatusPartialContent)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
@@ -307,7 +306,7 @@ func processRangeRequest(r *http.Request, w http.ResponseWriter, totalSize int64
pw.CloseWithError(e)
return
}
- if e = writeFn(part, ra.start, ra.length); e != nil {
+ if e = writeFn(part, ra.start, ra.length, 0); e != nil {
pw.CloseWithError(e)
return
}