Browse Source

http exhaust and close response body

pull/931/head
Chris Lu 6 years ago
parent
commit
e85048bcdc
  1. 6
      weed/operation/chunked_file.go
  2. 6
      weed/server/filer_server_handlers_read.go
  3. 6
      weed/server/filer_server_handlers_write.go

6
weed/operation/chunked_file.go

@ -6,6 +6,7 @@ import (
"fmt"
"google.golang.org/grpc"
"io"
"io/ioutil"
"net/http"
"sort"
@ -103,7 +104,10 @@ func readChunkNeedle(fileUrl string, w io.Writer, offset int64) (written int64,
if err != nil {
return written, err
}
defer resp.Body.Close()
defer func() {
io.Copy(ioutil.Discard, resp.Body)
resp.Body.Close()
}()
switch resp.StatusCode {
case http.StatusRequestedRangeNotSatisfiable:

6
weed/server/filer_server_handlers_read.go

@ -3,6 +3,7 @@ package weed_server
import (
"context"
"io"
"io/ioutil"
"mime"
"mime/multipart"
"net/http"
@ -107,7 +108,10 @@ func (fs *FilerServer) handleSingleChunk(w http.ResponseWriter, r *http.Request,
writeJsonError(w, r, http.StatusInternalServerError, do_err)
return
}
defer resp.Body.Close()
defer func() {
io.Copy(ioutil.Discard, resp.Body)
resp.Body.Close()
}()
for k, v := range resp.Header {
w.Header()[k] = v
}

6
weed/server/filer_server_handlers_write.go

@ -4,6 +4,7 @@ import (
"context"
"encoding/json"
"errors"
"io"
"io/ioutil"
"mime"
"net/http"
@ -131,7 +132,10 @@ func (fs *FilerServer) PostHandler(w http.ResponseWriter, r *http.Request) {
writeJsonError(w, r, http.StatusInternalServerError, do_err)
return
}
defer resp.Body.Close()
defer func() {
io.Copy(ioutil.Discard, resp.Body)
resp.Body.Close()
}()
etag := resp.Header.Get("ETag")
resp_body, ra_err := ioutil.ReadAll(resp.Body)
if ra_err != nil {

Loading…
Cancel
Save