aboutsummaryrefslogtreecommitdiff
path: root/weed/server/common.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/server/common.go')
-rw-r--r--weed/server/common.go5
1 files changed, 4 insertions, 1 deletions
diff --git a/weed/server/common.go b/weed/server/common.go
index ba4d13456..4bda31157 100644
--- a/weed/server/common.go
+++ b/weed/server/common.go
@@ -6,6 +6,7 @@ import (
"errors"
"fmt"
xhttp "github.com/chrislusf/seaweedfs/weed/s3api/http"
+ "github.com/chrislusf/seaweedfs/weed/util/mem"
"io"
"io/fs"
"mime/multipart"
@@ -361,7 +362,9 @@ func processRangeRequest(r *http.Request, w http.ResponseWriter, totalSize int64
w.Header().Set("Content-Length", strconv.FormatInt(sendSize, 10))
}
w.WriteHeader(http.StatusPartialContent)
- if _, err := io.CopyN(w, sendContent, sendSize); err != nil {
+ buf := mem.Allocate(128 * 1024)
+ defer mem.Free(buf)
+ if _, err := io.CopyBuffer(w, io.LimitReader(sendContent, sendSize), buf); err != nil {
http.Error(w, "Internal Error", http.StatusInternalServerError)
return
}