Преглед на файлове

optimize reading http request body

kevin преди 4 години
родител
ревизия
40895ba8d9
променени са 1 файла, в които са добавени 8 реда и са изтрити 1 реда
  1. 8 1
      rest/handler/cryptionhandler.go

+ 8 - 1
rest/handler/cryptionhandler.go

@@ -42,7 +42,14 @@ func decryptBody(key []byte, r *http.Request) error {
 		return errContentLengthExceeded
 	}
 
-	content, err := ioutil.ReadAll(io.LimitReader(r.Body, maxBytes))
+	var content []byte
+	var err error
+	if r.ContentLength > 0 {
+		content = make([]byte, r.ContentLength, r.ContentLength)
+		_, err = io.ReadFull(r.Body, content)
+	} else {
+		content, err = ioutil.ReadAll(io.LimitReader(r.Body, maxBytes))
+	}
 	if err != nil {
 		return err
 	}