diff options
| author | Chris Lu <chris.lu@uber.com> | 2019-03-27 14:25:18 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@uber.com> | 2019-03-27 14:25:18 -0700 |
| commit | c7e7b6229f16edb8a0adbcf85d21bed9e44d8109 (patch) | |
| tree | 803294dfdba7cfe6e96a366aaeaf471c7a34352e /weed/filesys/filehandle.go | |
| parent | 65757ae2fd41ca74a173e2b6d1716343517e9bbb (diff) | |
| download | seaweedfs-c7e7b6229f16edb8a0adbcf85d21bed9e44d8109.tar.xz seaweedfs-c7e7b6229f16edb8a0adbcf85d21bed9e44d8109.zip | |
detect mime type
Diffstat (limited to 'weed/filesys/filehandle.go')
| -rw-r--r-- | weed/filesys/filehandle.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/weed/filesys/filehandle.go b/weed/filesys/filehandle.go index 2c2e041e7..e87e0608e 100644 --- a/weed/filesys/filehandle.go +++ b/weed/filesys/filehandle.go @@ -8,10 +8,12 @@ import ( "github.com/chrislusf/seaweedfs/weed/operation" "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" "github.com/chrislusf/seaweedfs/weed/util" + "github.com/gabriel-vasile/mimetype" "github.com/seaweedfs/fuse" "github.com/seaweedfs/fuse/fs" "google.golang.org/grpc" - "net/http" + "mime" + "path" "strings" "sync" "time" @@ -154,7 +156,13 @@ func (fh *FileHandle) Write(ctx context.Context, req *fuse.WriteRequest, resp *f resp.Size = len(req.Data) if req.Offset == 0 { - fh.contentType = http.DetectContentType(req.Data) + // detect mime type + var possibleExt string + fh.contentType, possibleExt = mimetype.Detect(req.Data) + if ext := path.Ext(fh.f.Name); ext != possibleExt { + fh.contentType = mime.TypeByExtension(ext) + } + fh.dirtyMetadata = true } |
