Browse Source

better detect file mime type

pull/1278/head
Chris Lu 5 years ago
parent
commit
9cacaf5eca
  1. 12
      weed/filesys/filehandle.go
  2. 6
      weed/operation/upload_content.go

12
weed/filesys/filehandle.go

@ -4,12 +4,9 @@ import (
"context"
"fmt"
"math"
"mime"
"path"
"net/http"
"time"
"github.com/gabriel-vasile/mimetype"
"github.com/chrislusf/seaweedfs/weed/filer2"
"github.com/chrislusf/seaweedfs/weed/glog"
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
@ -130,12 +127,7 @@ func (fh *FileHandle) Write(ctx context.Context, req *fuse.WriteRequest, resp *f
if req.Offset == 0 {
// detect mime type
detectedMIME := mimetype.Detect(data)
fh.contentType = detectedMIME.String()
if ext := path.Ext(fh.f.Name); ext != detectedMIME.Extension() {
fh.contentType = mime.TypeByExtension(ext)
}
fh.contentType = http.DetectContentType(data)
fh.dirtyMetadata = true
}

6
weed/operation/upload_content.go

@ -77,6 +77,12 @@ func doUploadData(uploadUrl string, filename string, cipher bool, data []byte, i
contentIsGzipped := isInputGzipped
shouldGzipNow := false
if !isInputGzipped {
if mtype == "" {
mtype = http.DetectContentType(data)
if mtype == "application/octet-stream" {
mtype = ""
}
}
if shouldBeZipped, iAmSure := util.IsGzippableFileType(filepath.Base(filename), mtype); iAmSure && shouldBeZipped {
shouldGzipNow = true
} else if !iAmSure && mtype == "" && len(data) > 128 {

Loading…
Cancel
Save