mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-09-19 00:39:56 +08:00
better detect file mime type
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
@@ -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 {
|
||||
|
Reference in New Issue
Block a user