diff options
| author | lixianbin <lixianbin@xiaomi.com> | 2017-01-04 11:23:40 +0800 |
|---|---|---|
| committer | lixianbin <lixianbin@xiaomi.com> | 2017-01-04 11:23:40 +0800 |
| commit | d96d0a87cfb9aa26b83702a72a3affe6d72697b3 (patch) | |
| tree | eb5f984e15defc01f5c81072e27a1a1adabf29b2 /weed/storage/needle.go | |
| parent | f7ff98c747d2d3a4358fc0de8f0de78706ce9dc7 (diff) | |
| download | seaweedfs-d96d0a87cfb9aa26b83702a72a3affe6d72697b3.tar.xz seaweedfs-d96d0a87cfb9aa26b83702a72a3affe6d72697b3.zip | |
fix bug: upload big .gz file more than maxMB
Diffstat (limited to 'weed/storage/needle.go')
| -rw-r--r-- | weed/storage/needle.go | 54 |
1 files changed, 29 insertions, 25 deletions
diff --git a/weed/storage/needle.go b/weed/storage/needle.go index 29549b323..daa050be8 100644 --- a/weed/storage/needle.go +++ b/weed/storage/needle.go @@ -106,35 +106,39 @@ func ParseUpload(r *http.Request) ( } } - dotIndex := strings.LastIndex(fileName, ".") - ext, mtype := "", "" - if dotIndex > 0 { - ext = strings.ToLower(fileName[dotIndex:]) - mtype = mime.TypeByExtension(ext) - } - contentType := part.Header.Get("Content-Type") - if contentType != "" && mtype != contentType { - mimeType = contentType //only return mime type if not deductable - mtype = contentType - } - if part.Header.Get("Content-Encoding") == "gzip" { - isGzipped = true - } else if operation.IsGzippable(ext, mtype) { - if data, e = operation.GzipData(data); e != nil { - return + isChunkedFile, _ = strconv.ParseBool(r.FormValue("cm")) + isGzipped = false + if !isChunkedFile { + dotIndex := strings.LastIndex(fileName, ".") + ext, mtype := "", "" + if dotIndex > 0 { + ext = strings.ToLower(fileName[dotIndex:]) + mtype = mime.TypeByExtension(ext) + } + contentType := part.Header.Get("Content-Type") + if contentType != "" && mtype != contentType { + mimeType = contentType //only return mime type if not deductable + mtype = contentType + } + if part.Header.Get("Content-Encoding") == "gzip" { + isGzipped = true + } else if operation.IsGzippable(ext, mtype) { + if data, e = operation.GzipData(data); e != nil { + return + } + isGzipped = true + } + if ext == ".gz" { + isGzipped = true + } + if strings.HasSuffix(fileName, ".gz") && + !strings.HasSuffix(fileName, ".tar.gz") { + fileName = fileName[:len(fileName)-3] } - isGzipped = true - } - if ext == ".gz" { - isGzipped = true - } - if strings.HasSuffix(fileName, ".gz") && - !strings.HasSuffix(fileName, ".tar.gz") { - fileName = fileName[:len(fileName)-3] } modifiedTime, _ = strconv.ParseUint(r.FormValue("ts"), 10, 64) ttl, _ = ReadTTL(r.FormValue("ttl")) - isChunkedFile, _ = strconv.ParseBool(r.FormValue("cm")) + return } func NewNeedle(r *http.Request, fixJpgOrientation bool) (n *Needle, e error) { |
