diff --git a/weed/storage/needle.go b/weed/storage/needle.go index f67556c72..ce6130711 100644 --- a/weed/storage/needle.go +++ b/weed/storage/needle.go @@ -59,10 +59,8 @@ func ParseUpload(r *http.Request) ( } } - isChunkedFile, _ = strconv.ParseBool(r.FormValue("cm")) - if r.Method == "POST" { - fileName, data, mimeType, isGzipped, e = parseMultipart(r, isChunkedFile) + fileName, data, mimeType, isGzipped, isChunkedFile, e = parseMultipart(r) } else { isGzipped = false mimeType = r.Header.Get("Content-Type") diff --git a/weed/storage/needle_map_metric.go b/weed/storage/needle_map_metric.go index 67b41f5a7..cc3d9e028 100644 --- a/weed/storage/needle_map_metric.go +++ b/weed/storage/needle_map_metric.go @@ -109,7 +109,7 @@ func reverseWalkIndexFile(r *os.File, initFn func(entryCount int64), fn func(key return e } for i := int(nextBatchSize) - 1; i >= 0; i-- { - key, offset, size := IdxFileEntry(bytes[i*NeedleEntrySize:i*NeedleEntrySize+NeedleEntrySize]) + key, offset, size := IdxFileEntry(bytes[i*NeedleEntrySize : i*NeedleEntrySize+NeedleEntrySize]) if e = fn(key, offset, size); e != nil { return e } diff --git a/weed/storage/needle_parse_multipart.go b/weed/storage/needle_parse_multipart.go index af12b994d..d42bc4629 100644 --- a/weed/storage/needle_parse_multipart.go +++ b/weed/storage/needle_parse_multipart.go @@ -7,11 +7,12 @@ import ( "mime" "net/http" "path" + "strconv" "strings" ) -func parseMultipart(r *http.Request, isChunkedFile bool) ( - fileName string, data []byte, mimeType string, isGzipped bool, e error) { +func parseMultipart(r *http.Request) ( + fileName string, data []byte, mimeType string, isGzipped, isChunkedFile bool, e error) { form, fe := r.MultipartReader() if fe != nil { glog.V(0).Infoln("MultipartReader [ERROR]", fe) @@ -63,6 +64,8 @@ func parseMultipart(r *http.Request, isChunkedFile bool) ( } } + isChunkedFile, _ = strconv.ParseBool(r.FormValue("cm")) + if !isChunkedFile { dotIndex := strings.LastIndex(fileName, ".")