aboutsummaryrefslogtreecommitdiffstats
path: root/swarm/api/client
diff options
context:
space:
mode:
authorAlexey Sharov <www.pismeco@gmail.com>2018-10-01 19:39:39 +0800
committerAnton Evangelatov <anton.evangelatov@gmail.com>2018-10-01 19:39:39 +0800
commitdc5d643bb59812cda578fac941c2f1da316bc9d7 (patch)
tree7405f387672f0548eb4734a93581780c96cee7a9 /swarm/api/client
parentb69942befeb9f1af55cad0f91953bdaea2ea3efb (diff)
downloadgo-tangerine-dc5d643bb59812cda578fac941c2f1da316bc9d7.tar
go-tangerine-dc5d643bb59812cda578fac941c2f1da316bc9d7.tar.gz
go-tangerine-dc5d643bb59812cda578fac941c2f1da316bc9d7.tar.bz2
go-tangerine-dc5d643bb59812cda578fac941c2f1da316bc9d7.tar.lz
go-tangerine-dc5d643bb59812cda578fac941c2f1da316bc9d7.tar.xz
go-tangerine-dc5d643bb59812cda578fac941c2f1da316bc9d7.tar.zst
go-tangerine-dc5d643bb59812cda578fac941c2f1da316bc9d7.zip
cmd/swarm, swarm: cross-platform Content-Type detection (#17782)
- Mime types generator (Standard "mime" package rely on system-settings, see mime.osInitMime) - Changed swarm/api.Upload: - simplify I/O throttling by semaphore primitive and use file name where possible - f.Close() must be called in Defer - otherwise panic or future added early return will cause leak of file descriptors - one error was suppressed
Diffstat (limited to 'swarm/api/client')
-rw-r--r--swarm/api/client/client.go9
1 files changed, 7 insertions, 2 deletions
diff --git a/swarm/api/client/client.go b/swarm/api/client/client.go
index a6666144a..47a6980de 100644
--- a/swarm/api/client/client.go
+++ b/swarm/api/client/client.go
@@ -24,7 +24,6 @@ import (
"fmt"
"io"
"io/ioutil"
- "mime"
"mime/multipart"
"net/http"
"net/textproto"
@@ -124,10 +123,16 @@ func Open(path string) (*File, error) {
f.Close()
return nil, err
}
+
+ contentType, err := api.DetectContentType(f.Name(), f)
+ if err != nil {
+ return nil, err
+ }
+
return &File{
ReadCloser: f,
ManifestEntry: api.ManifestEntry{
- ContentType: mime.TypeByExtension(filepath.Ext(path)),
+ ContentType: contentType,
Mode: int64(stat.Mode()),
Size: stat.Size(),
ModTime: stat.ModTime(),