diff --git a/weed/command/upload.go b/weed/command/upload.go index 1f0696f70..d7a468610 100644 --- a/weed/command/upload.go +++ b/weed/command/upload.go @@ -63,7 +63,7 @@ var cmdUpload = &Command{ func runUpload(cmd *Command, args []string) bool { secret := security.Secret(*upload.secretKey) - if len(cmdUpload.Flag.Args()) == 0 { + if len(args) == 0 { if *upload.dir == "" { return false } diff --git a/weed/operation/submit.go b/weed/operation/submit.go index 54b6e164e..1de6b544a 100644 --- a/weed/operation/submit.go +++ b/weed/operation/submit.go @@ -92,18 +92,15 @@ func newFilePart(fullPathFilename string) (ret FilePart, err error) { } ret.Reader = fh - if fi, fiErr := fh.Stat(); fiErr != nil { + fi, fiErr := fh.Stat() + if fiErr != nil { glog.V(0).Info("Failed to stat file:", fullPathFilename) return ret, fiErr - } else { - ret.ModTime = fi.ModTime().UTC().Unix() - ret.FileSize = fi.Size() } + ret.ModTime = fi.ModTime().UTC().Unix() + ret.FileSize = fi.Size() ext := strings.ToLower(path.Ext(fullPathFilename)) ret.IsGzipped = ext == ".gz" - if ret.IsGzipped { - ret.FileName = fullPathFilename[0 : len(fullPathFilename)-3] - } ret.FileName = fullPathFilename if ext != "" { ret.MimeType = mime.TypeByExtension(ext) 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) {