aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-03-07 07:25:15 -0800
committerChris Lu <chris.lu@gmail.com>2020-03-07 07:25:15 -0800
commit0375ce2c2e77c2529569e8d5289f54434be09348 (patch)
tree7f64f24c0d9db1cf7d7191e6acb999812387d0d1
parent1ae83c29389c64fedabaa5e401154c5b57add40c (diff)
downloadseaweedfs-0375ce2c2e77c2529569e8d5289f54434be09348.tar.xz
seaweedfs-0375ce2c2e77c2529569e8d5289f54434be09348.zip
filer: set mime type from volume server
-rw-r--r--weed/operation/upload_content.go1
-rw-r--r--weed/server/filer_server_handlers_write.go7
-rw-r--r--weed/server/volume_server_handlers_write.go1
3 files changed, 7 insertions, 2 deletions
diff --git a/weed/operation/upload_content.go b/weed/operation/upload_content.go
index 884933f18..a6dde973f 100644
--- a/weed/operation/upload_content.go
+++ b/weed/operation/upload_content.go
@@ -27,6 +27,7 @@ type UploadResult struct {
Error string `json:"error,omitempty"`
ETag string `json:"eTag,omitempty"`
CipherKey []byte `json:"cipherKey,omitempty"`
+ Mime string `json:"mime,omitempty"`
}
var (
diff --git a/weed/server/filer_server_handlers_write.go b/weed/server/filer_server_handlers_write.go
index b36333447..01f46a53b 100644
--- a/weed/server/filer_server_handlers_write.go
+++ b/weed/server/filer_server_handlers_write.go
@@ -186,6 +186,7 @@ func (fs *FilerServer) updateFilerStore(ctx context.Context, r *http.Request, w
Replication: replication,
Collection: collection,
TtlSec: int32(util.ParseInt(r.URL.Query().Get("ttl"), 0)),
+ Mime: ret.Mime,
},
Chunks: []*filer_pb.FileChunk{{
FileId: fileId,
@@ -194,8 +195,10 @@ func (fs *FilerServer) updateFilerStore(ctx context.Context, r *http.Request, w
ETag: ret.ETag,
}},
}
- if ext := filenamePath.Ext(path); ext != "" {
- entry.Attr.Mime = mime.TypeByExtension(ext)
+ if entry.Attr.Mime == "" {
+ if ext := filenamePath.Ext(path); ext != "" {
+ entry.Attr.Mime = mime.TypeByExtension(ext)
+ }
}
// glog.V(4).Infof("saving %s => %+v", path, entry)
if dbErr := fs.filer.CreateEntry(ctx, entry, false); dbErr != nil {
diff --git a/weed/server/volume_server_handlers_write.go b/weed/server/volume_server_handlers_write.go
index b6a242641..101be4c43 100644
--- a/weed/server/volume_server_handlers_write.go
+++ b/weed/server/volume_server_handlers_write.go
@@ -68,6 +68,7 @@ func (vs *VolumeServer) PostHandler(w http.ResponseWriter, r *http.Request) {
}
ret.Size = uint32(originalSize)
ret.ETag = needle.Etag()
+ ret.Mime = string(needle.Mime)
setEtag(w, ret.ETag)
writeJsonQuiet(w, r, httpStatus, ret)
}