From 16949fde09d87ebbeeb8f2f6d84e1d1d58c52f31 Mon Sep 17 00:00:00 2001 From: albertony <12441419+albertony@users.noreply.github.com> Date: Fri, 24 Sep 2021 19:47:04 +0200 Subject: [PATCH] Do not override mime types from os defaults https://forum.rclone.org/t/rclone-serve-http-save-as/26672 --- cmd/serve/dlna/cds.go | 35 ----------------------------------- fs/mimetype.go | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 35 deletions(-) diff --git a/cmd/serve/dlna/cds.go b/cmd/serve/dlna/cds.go index 451d5636b..87b676142 100644 --- a/cmd/serve/dlna/cds.go +++ b/cmd/serve/dlna/cds.go @@ -5,7 +5,6 @@ import ( "encoding/xml" "fmt" "log" - "mime" "net/http" "net/url" "os" @@ -22,40 +21,6 @@ import ( "github.com/rclone/rclone/vfs" ) -// Add a minimal number of mime types to augment go's built in types -// for environments which don't have access to a mime.types file (e.g. -// Termux on android) -func init() { - for _, t := range []struct { - mimeType string - extensions string - }{ - {"audio/flac", ".flac"}, - {"audio/mpeg", ".mpga,.mpega,.mp2,.mp3,.m4a"}, - {"audio/ogg", ".oga,.ogg,.opus,.spx"}, - {"audio/x-wav", ".wav"}, - {"image/tiff", ".tiff,.tif"}, - {"video/dv", ".dif,.dv"}, - {"video/fli", ".fli"}, - {"video/mpeg", ".mpeg,.mpg,.mpe"}, - {"video/MP2T", ".ts"}, - {"video/mp4", ".mp4"}, - {"video/quicktime", ".qt,.mov"}, - {"video/ogg", ".ogv"}, - {"video/webm", ".webm"}, - {"video/x-msvideo", ".avi"}, - {"video/x-matroska", ".mpv,.mkv"}, - {"text/srt", ".srt"}, - } { - for _, ext := range strings.Split(t.extensions, ",") { - err := mime.AddExtensionType(ext, t.mimeType) - if err != nil { - panic(err) - } - } - } -} - type contentDirectoryService struct { *server upnp.Eventing diff --git a/fs/mimetype.go b/fs/mimetype.go index 50ea7dc59..4ea9aab2a 100644 --- a/fs/mimetype.go +++ b/fs/mimetype.go @@ -7,6 +7,42 @@ import ( "strings" ) +// Add a minimal number of mime types to augment go's built in types +// for environments which don't have access to a mime.types file (e.g. +// Termux on android) +func init() { + for _, t := range []struct { + mimeType string + extensions string + }{ + {"audio/flac", ".flac"}, + {"audio/mpeg", ".mpga,.mpega,.mp2,.mp3,.m4a"}, + {"audio/ogg", ".oga,.ogg,.opus,.spx"}, + {"audio/x-wav", ".wav"}, + {"image/tiff", ".tiff,.tif"}, + {"video/dv", ".dif,.dv"}, + {"video/fli", ".fli"}, + {"video/mpeg", ".mpeg,.mpg,.mpe"}, + {"video/MP2T", ".ts"}, + {"video/mp4", ".mp4"}, + {"video/quicktime", ".qt,.mov"}, + {"video/ogg", ".ogv"}, + {"video/webm", ".webm"}, + {"video/x-msvideo", ".avi"}, + {"video/x-matroska", ".mpv,.mkv"}, + {"text/srt", ".srt"}, + } { + for _, ext := range strings.Split(t.extensions, ",") { + if mime.TypeByExtension(ext) == "" { + err := mime.AddExtensionType(ext, t.mimeType) + if err != nil { + panic(err) + } + } + } + } +} + // MimeTypeFromName returns a guess at the mime type from the name func MimeTypeFromName(remote string) (mimeType string) { mimeType = mime.TypeByExtension(path.Ext(remote))