cmd/swarm: mime auto(magic)detection

This commit is contained in:
nolash 2017-03-11 03:48:35 +01:00
parent 5841970c18
commit 5d50586dcb

View file

@ -185,9 +185,28 @@ func (c *client) uploadFile(file string, fi os.FileInfo, mimetype_ string) (mani
hash, err := c.uploadFileContent(file, fi) hash, err := c.uploadFileContent(file, fi)
if mimetype_ != "" { if mimetype_ != "" {
mimetype = mimetype_ mimetype = mimetype_
log.Info("Mime type set by override", "mime", mimetype)
} else { } else {
mimetype = mime.TypeByExtension(filepath.Ext(fi.Name())) ext := filepath.Ext(file)
log.Info("Ext" , "ext", ext, "file", file)
if ext != "" {
mimetype = mime.TypeByExtension(filepath.Ext(fi.Name()))
log.Info("Mime type set by fileextension", "mime", mimetype, "ext", filepath.Ext(file))
} else {
f, err := os.Open(file)
if err == nil {
first512 := make([]byte, 512)
fread, _ := f.ReadAt(first512, 0)
if fread > 0 {
mimetype = http.DetectContentType(first512[:fread])
log.Info("Mime type set by autodetection", "mime", mimetype)
}
}
f.Close()
}
} }
m := manifestEntry{ m := manifestEntry{
Hash: hash, Hash: hash,
ContentType: mimetype, ContentType: mimetype,