github.com/aliyun/aliyun-oss-go-sdk@v3.0.2+incompatible/oss/mime.go (about)

     1  package oss
     2  
     3  import (
     4  	"mime"
     5  	"path"
     6  	"strings"
     7  )
     8  
     9  var extToMimeType = map[string]string{
    10  	".xlsx":          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
    11  	".xltx":          "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
    12  	".potx":          "application/vnd.openxmlformats-officedocument.presentationml.template",
    13  	".ppsx":          "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
    14  	".pptx":          "application/vnd.openxmlformats-officedocument.presentationml.presentation",
    15  	".sldx":          "application/vnd.openxmlformats-officedocument.presentationml.slide",
    16  	".docx":          "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
    17  	".dotx":          "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
    18  	".xlam":          "application/vnd.ms-excel.addin.macroEnabled.12",
    19  	".xlsb":          "application/vnd.ms-excel.sheet.binary.macroEnabled.12",
    20  	".apk":           "application/vnd.android.package-archive",
    21  	".hqx":           "application/mac-binhex40",
    22  	".cpt":           "application/mac-compactpro",
    23  	".doc":           "application/msword",
    24  	".ogg":           "application/ogg",
    25  	".pdf":           "application/pdf",
    26  	".rtf":           "text/rtf",
    27  	".mif":           "application/vnd.mif",
    28  	".xls":           "application/vnd.ms-excel",
    29  	".ppt":           "application/vnd.ms-powerpoint",
    30  	".odc":           "application/vnd.oasis.opendocument.chart",
    31  	".odb":           "application/vnd.oasis.opendocument.database",
    32  	".odf":           "application/vnd.oasis.opendocument.formula",
    33  	".odg":           "application/vnd.oasis.opendocument.graphics",
    34  	".otg":           "application/vnd.oasis.opendocument.graphics-template",
    35  	".odi":           "application/vnd.oasis.opendocument.image",
    36  	".odp":           "application/vnd.oasis.opendocument.presentation",
    37  	".otp":           "application/vnd.oasis.opendocument.presentation-template",
    38  	".ods":           "application/vnd.oasis.opendocument.spreadsheet",
    39  	".ots":           "application/vnd.oasis.opendocument.spreadsheet-template",
    40  	".odt":           "application/vnd.oasis.opendocument.text",
    41  	".odm":           "application/vnd.oasis.opendocument.text-master",
    42  	".ott":           "application/vnd.oasis.opendocument.text-template",
    43  	".oth":           "application/vnd.oasis.opendocument.text-web",
    44  	".sxw":           "application/vnd.sun.xml.writer",
    45  	".stw":           "application/vnd.sun.xml.writer.template",
    46  	".sxc":           "application/vnd.sun.xml.calc",
    47  	".stc":           "application/vnd.sun.xml.calc.template",
    48  	".sxd":           "application/vnd.sun.xml.draw",
    49  	".std":           "application/vnd.sun.xml.draw.template",
    50  	".sxi":           "application/vnd.sun.xml.impress",
    51  	".sti":           "application/vnd.sun.xml.impress.template",
    52  	".sxg":           "application/vnd.sun.xml.writer.global",
    53  	".sxm":           "application/vnd.sun.xml.math",
    54  	".sis":           "application/vnd.symbian.install",
    55  	".wbxml":         "application/vnd.wap.wbxml",
    56  	".wmlc":          "application/vnd.wap.wmlc",
    57  	".wmlsc":         "application/vnd.wap.wmlscriptc",
    58  	".bcpio":         "application/x-bcpio",
    59  	".torrent":       "application/x-bittorrent",
    60  	".bz2":           "application/x-bzip2",
    61  	".vcd":           "application/x-cdlink",
    62  	".pgn":           "application/x-chess-pgn",
    63  	".cpio":          "application/x-cpio",
    64  	".csh":           "application/x-csh",
    65  	".dvi":           "application/x-dvi",
    66  	".spl":           "application/x-futuresplash",
    67  	".gtar":          "application/x-gtar",
    68  	".hdf":           "application/x-hdf",
    69  	".jar":           "application/x-java-archive",
    70  	".jnlp":          "application/x-java-jnlp-file",
    71  	".js":            "application/x-javascript",
    72  	".ksp":           "application/x-kspread",
    73  	".chrt":          "application/x-kchart",
    74  	".kil":           "application/x-killustrator",
    75  	".latex":         "application/x-latex",
    76  	".rpm":           "application/x-rpm",
    77  	".sh":            "application/x-sh",
    78  	".shar":          "application/x-shar",
    79  	".swf":           "application/x-shockwave-flash",
    80  	".sit":           "application/x-stuffit",
    81  	".sv4cpio":       "application/x-sv4cpio",
    82  	".sv4crc":        "application/x-sv4crc",
    83  	".tar":           "application/x-tar",
    84  	".tcl":           "application/x-tcl",
    85  	".tex":           "application/x-tex",
    86  	".man":           "application/x-troff-man",
    87  	".me":            "application/x-troff-me",
    88  	".ms":            "application/x-troff-ms",
    89  	".ustar":         "application/x-ustar",
    90  	".src":           "application/x-wais-source",
    91  	".zip":           "application/zip",
    92  	".m3u":           "audio/x-mpegurl",
    93  	".ra":            "audio/x-pn-realaudio",
    94  	".wav":           "audio/x-wav",
    95  	".wma":           "audio/x-ms-wma",
    96  	".wax":           "audio/x-ms-wax",
    97  	".pdb":           "chemical/x-pdb",
    98  	".xyz":           "chemical/x-xyz",
    99  	".bmp":           "image/bmp",
   100  	".gif":           "image/gif",
   101  	".ief":           "image/ief",
   102  	".png":           "image/png",
   103  	".wbmp":          "image/vnd.wap.wbmp",
   104  	".ras":           "image/x-cmu-raster",
   105  	".pnm":           "image/x-portable-anymap",
   106  	".pbm":           "image/x-portable-bitmap",
   107  	".pgm":           "image/x-portable-graymap",
   108  	".ppm":           "image/x-portable-pixmap",
   109  	".rgb":           "image/x-rgb",
   110  	".xbm":           "image/x-xbitmap",
   111  	".xpm":           "image/x-xpixmap",
   112  	".xwd":           "image/x-xwindowdump",
   113  	".css":           "text/css",
   114  	".rtx":           "text/richtext",
   115  	".tsv":           "text/tab-separated-values",
   116  	".jad":           "text/vnd.sun.j2me.app-descriptor",
   117  	".wml":           "text/vnd.wap.wml",
   118  	".wmls":          "text/vnd.wap.wmlscript",
   119  	".etx":           "text/x-setext",
   120  	".mxu":           "video/vnd.mpegurl",
   121  	".flv":           "video/x-flv",
   122  	".wm":            "video/x-ms-wm",
   123  	".wmv":           "video/x-ms-wmv",
   124  	".wmx":           "video/x-ms-wmx",
   125  	".wvx":           "video/x-ms-wvx",
   126  	".avi":           "video/x-msvideo",
   127  	".movie":         "video/x-sgi-movie",
   128  	".ice":           "x-conference/x-cooltalk",
   129  	".3gp":           "video/3gpp",
   130  	".ai":            "application/postscript",
   131  	".aif":           "audio/x-aiff",
   132  	".aifc":          "audio/x-aiff",
   133  	".aiff":          "audio/x-aiff",
   134  	".asc":           "text/plain",
   135  	".atom":          "application/atom+xml",
   136  	".au":            "audio/basic",
   137  	".bin":           "application/octet-stream",
   138  	".cdf":           "application/x-netcdf",
   139  	".cgm":           "image/cgm",
   140  	".class":         "application/octet-stream",
   141  	".dcr":           "application/x-director",
   142  	".dif":           "video/x-dv",
   143  	".dir":           "application/x-director",
   144  	".djv":           "image/vnd.djvu",
   145  	".djvu":          "image/vnd.djvu",
   146  	".dll":           "application/octet-stream",
   147  	".dmg":           "application/octet-stream",
   148  	".dms":           "application/octet-stream",
   149  	".dtd":           "application/xml-dtd",
   150  	".dv":            "video/x-dv",
   151  	".dxr":           "application/x-director",
   152  	".eps":           "application/postscript",
   153  	".exe":           "application/octet-stream",
   154  	".ez":            "application/andrew-inset",
   155  	".gram":          "application/srgs",
   156  	".grxml":         "application/srgs+xml",
   157  	".gz":            "application/x-gzip",
   158  	".htm":           "text/html",
   159  	".html":          "text/html",
   160  	".ico":           "image/x-icon",
   161  	".ics":           "text/calendar",
   162  	".ifb":           "text/calendar",
   163  	".iges":          "model/iges",
   164  	".igs":           "model/iges",
   165  	".jp2":           "image/jp2",
   166  	".jpe":           "image/jpeg",
   167  	".jpeg":          "image/jpeg",
   168  	".jpg":           "image/jpeg",
   169  	".kar":           "audio/midi",
   170  	".lha":           "application/octet-stream",
   171  	".lzh":           "application/octet-stream",
   172  	".m4a":           "audio/mp4a-latm",
   173  	".m4p":           "audio/mp4a-latm",
   174  	".m4u":           "video/vnd.mpegurl",
   175  	".m4v":           "video/x-m4v",
   176  	".mac":           "image/x-macpaint",
   177  	".mathml":        "application/mathml+xml",
   178  	".mesh":          "model/mesh",
   179  	".mid":           "audio/midi",
   180  	".midi":          "audio/midi",
   181  	".mov":           "video/quicktime",
   182  	".mp2":           "audio/mpeg",
   183  	".mp3":           "audio/mpeg",
   184  	".mp4":           "video/mp4",
   185  	".mpe":           "video/mpeg",
   186  	".mpeg":          "video/mpeg",
   187  	".mpg":           "video/mpeg",
   188  	".mpga":          "audio/mpeg",
   189  	".msh":           "model/mesh",
   190  	".nc":            "application/x-netcdf",
   191  	".oda":           "application/oda",
   192  	".ogv":           "video/ogv",
   193  	".pct":           "image/pict",
   194  	".pic":           "image/pict",
   195  	".pict":          "image/pict",
   196  	".pnt":           "image/x-macpaint",
   197  	".pntg":          "image/x-macpaint",
   198  	".ps":            "application/postscript",
   199  	".qt":            "video/quicktime",
   200  	".qti":           "image/x-quicktime",
   201  	".qtif":          "image/x-quicktime",
   202  	".ram":           "audio/x-pn-realaudio",
   203  	".rdf":           "application/rdf+xml",
   204  	".rm":            "application/vnd.rn-realmedia",
   205  	".roff":          "application/x-troff",
   206  	".sgm":           "text/sgml",
   207  	".sgml":          "text/sgml",
   208  	".silo":          "model/mesh",
   209  	".skd":           "application/x-koan",
   210  	".skm":           "application/x-koan",
   211  	".skp":           "application/x-koan",
   212  	".skt":           "application/x-koan",
   213  	".smi":           "application/smil",
   214  	".smil":          "application/smil",
   215  	".snd":           "audio/basic",
   216  	".so":            "application/octet-stream",
   217  	".svg":           "image/svg+xml",
   218  	".t":             "application/x-troff",
   219  	".texi":          "application/x-texinfo",
   220  	".texinfo":       "application/x-texinfo",
   221  	".tif":           "image/tiff",
   222  	".tiff":          "image/tiff",
   223  	".tr":            "application/x-troff",
   224  	".txt":           "text/plain",
   225  	".vrml":          "model/vrml",
   226  	".vxml":          "application/voicexml+xml",
   227  	".webm":          "video/webm",
   228  	".wrl":           "model/vrml",
   229  	".xht":           "application/xhtml+xml",
   230  	".xhtml":         "application/xhtml+xml",
   231  	".xml":           "application/xml",
   232  	".xsl":           "application/xml",
   233  	".xslt":          "application/xslt+xml",
   234  	".xul":           "application/vnd.mozilla.xul+xml",
   235  	".webp":          "image/webp",
   236  	".323":           "text/h323",
   237  	".aab":           "application/x-authoware-bin",
   238  	".aam":           "application/x-authoware-map",
   239  	".aas":           "application/x-authoware-seg",
   240  	".acx":           "application/internet-property-stream",
   241  	".als":           "audio/X-Alpha5",
   242  	".amc":           "application/x-mpeg",
   243  	".ani":           "application/octet-stream",
   244  	".asd":           "application/astound",
   245  	".asf":           "video/x-ms-asf",
   246  	".asn":           "application/astound",
   247  	".asp":           "application/x-asap",
   248  	".asr":           "video/x-ms-asf",
   249  	".asx":           "video/x-ms-asf",
   250  	".avb":           "application/octet-stream",
   251  	".awb":           "audio/amr-wb",
   252  	".axs":           "application/olescript",
   253  	".bas":           "text/plain",
   254  	".bin ":          "application/octet-stream",
   255  	".bld":           "application/bld",
   256  	".bld2":          "application/bld2",
   257  	".bpk":           "application/octet-stream",
   258  	".c":             "text/plain",
   259  	".cal":           "image/x-cals",
   260  	".cat":           "application/vnd.ms-pkiseccat",
   261  	".ccn":           "application/x-cnc",
   262  	".cco":           "application/x-cocoa",
   263  	".cer":           "application/x-x509-ca-cert",
   264  	".cgi":           "magnus-internal/cgi",
   265  	".chat":          "application/x-chat",
   266  	".clp":           "application/x-msclip",
   267  	".cmx":           "image/x-cmx",
   268  	".co":            "application/x-cult3d-object",
   269  	".cod":           "image/cis-cod",
   270  	".conf":          "text/plain",
   271  	".cpp":           "text/plain",
   272  	".crd":           "application/x-mscardfile",
   273  	".crl":           "application/pkix-crl",
   274  	".crt":           "application/x-x509-ca-cert",
   275  	".csm":           "chemical/x-csml",
   276  	".csml":          "chemical/x-csml",
   277  	".cur":           "application/octet-stream",
   278  	".dcm":           "x-lml/x-evm",
   279  	".dcx":           "image/x-dcx",
   280  	".der":           "application/x-x509-ca-cert",
   281  	".dhtml":         "text/html",
   282  	".dot":           "application/msword",
   283  	".dwf":           "drawing/x-dwf",
   284  	".dwg":           "application/x-autocad",
   285  	".dxf":           "application/x-autocad",
   286  	".ebk":           "application/x-expandedbook",
   287  	".emb":           "chemical/x-embl-dl-nucleotide",
   288  	".embl":          "chemical/x-embl-dl-nucleotide",
   289  	".epub":          "application/epub+zip",
   290  	".eri":           "image/x-eri",
   291  	".es":            "audio/echospeech",
   292  	".esl":           "audio/echospeech",
   293  	".etc":           "application/x-earthtime",
   294  	".evm":           "x-lml/x-evm",
   295  	".evy":           "application/envoy",
   296  	".fh4":           "image/x-freehand",
   297  	".fh5":           "image/x-freehand",
   298  	".fhc":           "image/x-freehand",
   299  	".fif":           "application/fractals",
   300  	".flr":           "x-world/x-vrml",
   301  	".fm":            "application/x-maker",
   302  	".fpx":           "image/x-fpx",
   303  	".fvi":           "video/isivideo",
   304  	".gau":           "chemical/x-gaussian-input",
   305  	".gca":           "application/x-gca-compressed",
   306  	".gdb":           "x-lml/x-gdb",
   307  	".gps":           "application/x-gps",
   308  	".h":             "text/plain",
   309  	".hdm":           "text/x-hdml",
   310  	".hdml":          "text/x-hdml",
   311  	".hlp":           "application/winhlp",
   312  	".hta":           "application/hta",
   313  	".htc":           "text/x-component",
   314  	".hts":           "text/html",
   315  	".htt":           "text/webviewhtml",
   316  	".ifm":           "image/gif",
   317  	".ifs":           "image/ifs",
   318  	".iii":           "application/x-iphone",
   319  	".imy":           "audio/melody",
   320  	".ins":           "application/x-internet-signup",
   321  	".ips":           "application/x-ipscript",
   322  	".ipx":           "application/x-ipix",
   323  	".isp":           "application/x-internet-signup",
   324  	".it":            "audio/x-mod",
   325  	".itz":           "audio/x-mod",
   326  	".ivr":           "i-world/i-vrml",
   327  	".j2k":           "image/j2k",
   328  	".jam":           "application/x-jam",
   329  	".java":          "text/plain",
   330  	".jfif":          "image/pipeg",
   331  	".jpz":           "image/jpeg",
   332  	".jwc":           "application/jwc",
   333  	".kjx":           "application/x-kjx",
   334  	".lak":           "x-lml/x-lak",
   335  	".lcc":           "application/fastman",
   336  	".lcl":           "application/x-digitalloca",
   337  	".lcr":           "application/x-digitalloca",
   338  	".lgh":           "application/lgh",
   339  	".lml":           "x-lml/x-lml",
   340  	".lmlpack":       "x-lml/x-lmlpack",
   341  	".log":           "text/plain",
   342  	".lsf":           "video/x-la-asf",
   343  	".lsx":           "video/x-la-asf",
   344  	".m13":           "application/x-msmediaview",
   345  	".m14":           "application/x-msmediaview",
   346  	".m15":           "audio/x-mod",
   347  	".m3url":         "audio/x-mpegurl",
   348  	".m4b":           "audio/mp4a-latm",
   349  	".ma1":           "audio/ma1",
   350  	".ma2":           "audio/ma2",
   351  	".ma3":           "audio/ma3",
   352  	".ma5":           "audio/ma5",
   353  	".map":           "magnus-internal/imagemap",
   354  	".mbd":           "application/mbedlet",
   355  	".mct":           "application/x-mascot",
   356  	".mdb":           "application/x-msaccess",
   357  	".mdz":           "audio/x-mod",
   358  	".mel":           "text/x-vmel",
   359  	".mht":           "message/rfc822",
   360  	".mhtml":         "message/rfc822",
   361  	".mi":            "application/x-mif",
   362  	".mil":           "image/x-cals",
   363  	".mio":           "audio/x-mio",
   364  	".mmf":           "application/x-skt-lbs",
   365  	".mng":           "video/x-mng",
   366  	".mny":           "application/x-msmoney",
   367  	".moc":           "application/x-mocha",
   368  	".mocha":         "application/x-mocha",
   369  	".mod":           "audio/x-mod",
   370  	".mof":           "application/x-yumekara",
   371  	".mol":           "chemical/x-mdl-molfile",
   372  	".mop":           "chemical/x-mopac-input",
   373  	".mpa":           "video/mpeg",
   374  	".mpc":           "application/vnd.mpohun.certificate",
   375  	".mpg4":          "video/mp4",
   376  	".mpn":           "application/vnd.mophun.application",
   377  	".mpp":           "application/vnd.ms-project",
   378  	".mps":           "application/x-mapserver",
   379  	".mpv2":          "video/mpeg",
   380  	".mrl":           "text/x-mrml",
   381  	".mrm":           "application/x-mrm",
   382  	".msg":           "application/vnd.ms-outlook",
   383  	".mts":           "application/metastream",
   384  	".mtx":           "application/metastream",
   385  	".mtz":           "application/metastream",
   386  	".mvb":           "application/x-msmediaview",
   387  	".mzv":           "application/metastream",
   388  	".nar":           "application/zip",
   389  	".nbmp":          "image/nbmp",
   390  	".ndb":           "x-lml/x-ndb",
   391  	".ndwn":          "application/ndwn",
   392  	".nif":           "application/x-nif",
   393  	".nmz":           "application/x-scream",
   394  	".nokia-op-logo": "image/vnd.nok-oplogo-color",
   395  	".npx":           "application/x-netfpx",
   396  	".nsnd":          "audio/nsnd",
   397  	".nva":           "application/x-neva1",
   398  	".nws":           "message/rfc822",
   399  	".oom":           "application/x-AtlasMate-Plugin",
   400  	".p10":           "application/pkcs10",
   401  	".p12":           "application/x-pkcs12",
   402  	".p7b":           "application/x-pkcs7-certificates",
   403  	".p7c":           "application/x-pkcs7-mime",
   404  	".p7m":           "application/x-pkcs7-mime",
   405  	".p7r":           "application/x-pkcs7-certreqresp",
   406  	".p7s":           "application/x-pkcs7-signature",
   407  	".pac":           "audio/x-pac",
   408  	".pae":           "audio/x-epac",
   409  	".pan":           "application/x-pan",
   410  	".pcx":           "image/x-pcx",
   411  	".pda":           "image/x-pda",
   412  	".pfr":           "application/font-tdpfr",
   413  	".pfx":           "application/x-pkcs12",
   414  	".pko":           "application/ynd.ms-pkipko",
   415  	".pm":            "application/x-perl",
   416  	".pma":           "application/x-perfmon",
   417  	".pmc":           "application/x-perfmon",
   418  	".pmd":           "application/x-pmd",
   419  	".pml":           "application/x-perfmon",
   420  	".pmr":           "application/x-perfmon",
   421  	".pmw":           "application/x-perfmon",
   422  	".pnz":           "image/png",
   423  	".pot,":          "application/vnd.ms-powerpoint",
   424  	".pps":           "application/vnd.ms-powerpoint",
   425  	".pqf":           "application/x-cprplayer",
   426  	".pqi":           "application/cprplayer",
   427  	".prc":           "application/x-prc",
   428  	".prf":           "application/pics-rules",
   429  	".prop":          "text/plain",
   430  	".proxy":         "application/x-ns-proxy-autoconfig",
   431  	".ptlk":          "application/listenup",
   432  	".pub":           "application/x-mspublisher",
   433  	".pvx":           "video/x-pv-pvx",
   434  	".qcp":           "audio/vnd.qcelp",
   435  	".r3t":           "text/vnd.rn-realtext3d",
   436  	".rar":           "application/octet-stream",
   437  	".rc":            "text/plain",
   438  	".rf":            "image/vnd.rn-realflash",
   439  	".rlf":           "application/x-richlink",
   440  	".rmf":           "audio/x-rmf",
   441  	".rmi":           "audio/mid",
   442  	".rmm":           "audio/x-pn-realaudio",
   443  	".rmvb":          "audio/x-pn-realaudio",
   444  	".rnx":           "application/vnd.rn-realplayer",
   445  	".rp":            "image/vnd.rn-realpix",
   446  	".rt":            "text/vnd.rn-realtext",
   447  	".rte":           "x-lml/x-gps",
   448  	".rtg":           "application/metastream",
   449  	".rv":            "video/vnd.rn-realvideo",
   450  	".rwc":           "application/x-rogerwilco",
   451  	".s3m":           "audio/x-mod",
   452  	".s3z":           "audio/x-mod",
   453  	".sca":           "application/x-supercard",
   454  	".scd":           "application/x-msschedule",
   455  	".sct":           "text/scriptlet",
   456  	".sdf":           "application/e-score",
   457  	".sea":           "application/x-stuffit",
   458  	".setpay":        "application/set-payment-initiation",
   459  	".setreg":        "application/set-registration-initiation",
   460  	".shtml":         "text/html",
   461  	".shtm":          "text/html",
   462  	".shw":           "application/presentations",
   463  	".si6":           "image/si6",
   464  	".si7":           "image/vnd.stiwap.sis",
   465  	".si9":           "image/vnd.lgtwap.sis",
   466  	".slc":           "application/x-salsa",
   467  	".smd":           "audio/x-smd",
   468  	".smp":           "application/studiom",
   469  	".smz":           "audio/x-smd",
   470  	".spc":           "application/x-pkcs7-certificates",
   471  	".spr":           "application/x-sprite",
   472  	".sprite":        "application/x-sprite",
   473  	".sdp":           "application/sdp",
   474  	".spt":           "application/x-spt",
   475  	".sst":           "application/vnd.ms-pkicertstore",
   476  	".stk":           "application/hyperstudio",
   477  	".stl":           "application/vnd.ms-pkistl",
   478  	".stm":           "text/html",
   479  	".svf":           "image/vnd",
   480  	".svh":           "image/svh",
   481  	".svr":           "x-world/x-svr",
   482  	".swfl":          "application/x-shockwave-flash",
   483  	".tad":           "application/octet-stream",
   484  	".talk":          "text/x-speech",
   485  	".taz":           "application/x-tar",
   486  	".tbp":           "application/x-timbuktu",
   487  	".tbt":           "application/x-timbuktu",
   488  	".tgz":           "application/x-compressed",
   489  	".thm":           "application/vnd.eri.thm",
   490  	".tki":           "application/x-tkined",
   491  	".tkined":        "application/x-tkined",
   492  	".toc":           "application/toc",
   493  	".toy":           "image/toy",
   494  	".trk":           "x-lml/x-gps",
   495  	".trm":           "application/x-msterminal",
   496  	".tsi":           "audio/tsplayer",
   497  	".tsp":           "application/dsptype",
   498  	".ttf":           "application/octet-stream",
   499  	".ttz":           "application/t-time",
   500  	".uls":           "text/iuls",
   501  	".ult":           "audio/x-mod",
   502  	".uu":            "application/x-uuencode",
   503  	".uue":           "application/x-uuencode",
   504  	".vcf":           "text/x-vcard",
   505  	".vdo":           "video/vdo",
   506  	".vib":           "audio/vib",
   507  	".viv":           "video/vivo",
   508  	".vivo":          "video/vivo",
   509  	".vmd":           "application/vocaltec-media-desc",
   510  	".vmf":           "application/vocaltec-media-file",
   511  	".vmi":           "application/x-dreamcast-vms-info",
   512  	".vms":           "application/x-dreamcast-vms",
   513  	".vox":           "audio/voxware",
   514  	".vqe":           "audio/x-twinvq-plugin",
   515  	".vqf":           "audio/x-twinvq",
   516  	".vql":           "audio/x-twinvq",
   517  	".vre":           "x-world/x-vream",
   518  	".vrt":           "x-world/x-vrt",
   519  	".vrw":           "x-world/x-vream",
   520  	".vts":           "workbook/formulaone",
   521  	".wcm":           "application/vnd.ms-works",
   522  	".wdb":           "application/vnd.ms-works",
   523  	".web":           "application/vnd.xara",
   524  	".wi":            "image/wavelet",
   525  	".wis":           "application/x-InstallShield",
   526  	".wks":           "application/vnd.ms-works",
   527  	".wmd":           "application/x-ms-wmd",
   528  	".wmf":           "application/x-msmetafile",
   529  	".wmlscript":     "text/vnd.wap.wmlscript",
   530  	".wmz":           "application/x-ms-wmz",
   531  	".wpng":          "image/x-up-wpng",
   532  	".wps":           "application/vnd.ms-works",
   533  	".wpt":           "x-lml/x-gps",
   534  	".wri":           "application/x-mswrite",
   535  	".wrz":           "x-world/x-vrml",
   536  	".ws":            "text/vnd.wap.wmlscript",
   537  	".wsc":           "application/vnd.wap.wmlscriptc",
   538  	".wv":            "video/wavelet",
   539  	".wxl":           "application/x-wxl",
   540  	".x-gzip":        "application/x-gzip",
   541  	".xaf":           "x-world/x-vrml",
   542  	".xar":           "application/vnd.xara",
   543  	".xdm":           "application/x-xdma",
   544  	".xdma":          "application/x-xdma",
   545  	".xdw":           "application/vnd.fujixerox.docuworks",
   546  	".xhtm":          "application/xhtml+xml",
   547  	".xla":           "application/vnd.ms-excel",
   548  	".xlc":           "application/vnd.ms-excel",
   549  	".xll":           "application/x-excel",
   550  	".xlm":           "application/vnd.ms-excel",
   551  	".xlt":           "application/vnd.ms-excel",
   552  	".xlw":           "application/vnd.ms-excel",
   553  	".xm":            "audio/x-mod",
   554  	".xmz":           "audio/x-mod",
   555  	".xof":           "x-world/x-vrml",
   556  	".xpi":           "application/x-xpinstall",
   557  	".xsit":          "text/xml",
   558  	".yz1":           "application/x-yz1",
   559  	".z":             "application/x-compress",
   560  	".zac":           "application/x-zaurus-zac",
   561  	".json":          "application/json",
   562  }
   563  
   564  // TypeByExtension returns the MIME type associated with the file extension ext.
   565  // gets the file's MIME type for HTTP header Content-Type
   566  func TypeByExtension(filePath string) string {
   567  	typ := mime.TypeByExtension(path.Ext(filePath))
   568  	if typ == "" {
   569  		typ = extToMimeType[strings.ToLower(path.Ext(filePath))]
   570  	} else {
   571  		if strings.HasPrefix(typ, "text/") && strings.Contains(typ, "charset=") {
   572  			typ = removeCharsetInMimeType(typ)
   573  		}
   574  	}
   575  	return typ
   576  }
   577  
   578  // Remove charset from mime type
   579  func removeCharsetInMimeType(typ string) (str string) {
   580  	temArr := strings.Split(typ, ";")
   581  	var builder strings.Builder
   582  	for i, s := range temArr {
   583  		tmpStr := strings.Trim(s, " ")
   584  		if strings.Contains(tmpStr, "charset=") {
   585  			continue
   586  		}
   587  		if i == 0 {
   588  			builder.WriteString(s)
   589  		} else {
   590  			builder.WriteString("; " + s)
   591  		}
   592  	}
   593  	return builder.String()
   594  }