Bladeren bron

support more mime type

taowei.wtw 6 jaren geleden
bovenliggende
commit
d0a2d03230
5 gewijzigde bestanden met toevoegingen van 566 en 257 verwijderingen
  1. 11 28
      oss/bucket_test.go
  2. 0 1
      oss/client_test.go
  3. 552 226
      oss/mime.go
  4. 1 1
      oss/multipart_test.go
  5. 2 1
      oss/progress_test.go

+ 11 - 28
oss/bucket_test.go

@@ -623,7 +623,7 @@ func (s *OssBucketSuite) TestPutObjectType(c *C) {
 
 	meta, err = s.bucket.GetObjectDetailedMeta(objectName + ".txt")
 	c.Assert(err, IsNil)
-	c.Assert(meta.Get("Content-Type"), Equals, "text/plain; charset=utf-8")
+	c.Assert(strings.Contains(meta.Get("Content-Type"), "text/plain"), Equals, true)
 
 	err = s.bucket.DeleteObject(objectName + ".txt")
 	c.Assert(err, IsNil)
@@ -908,7 +908,7 @@ func (s *OssBucketSuite) TestGetObjectToWriterNegative(c *C) {
 	c.Assert(err, IsNil)
 
 	// Not exist
-	err = s.bucket.GetObjectToFile(objectName, "/root/123abc9874")
+	err = s.bucket.GetObjectToFile(objectName, "/root1/123abc9874")
 	c.Assert(err, NotNil)
 
 	// Invalid option
@@ -3005,7 +3005,7 @@ func (s *OssBucketSuite) TestDeleteObjectTagging(c *C) {
 	s.bucket.DeleteObject(objectName)
 }
 
-func (s *OssBucketSuite) TestVersioningBucketVerison(c *C) {
+func (s *OssBucketSuite) TestUploadFileMimeShtml(c *C) {
 	// create a bucket with default proprety
 	client, err := New(endpoint, accessID, accessKey)
 	c.Assert(err, IsNil)
@@ -3014,35 +3014,18 @@ func (s *OssBucketSuite) TestVersioningBucketVerison(c *C) {
 	err = client.CreateBucket(bucketName)
 	c.Assert(err, IsNil)
 
-	// Get default bucket info
-	bucketResult, err := client.GetBucketInfo(bucketName)
-	c.Assert(err, IsNil)
-
-	c.Assert(bucketResult.BucketInfo.SseRule.KMSMasterKeyID, Equals, "")
-	c.Assert(bucketResult.BucketInfo.SseRule.SSEAlgorithm, Equals, "")
-	c.Assert(bucketResult.BucketInfo.Versioning, Equals, "")
-
-	// put bucket version:enabled
-	var respHeader http.Header
-	var versioningConfig VersioningConfig
-	versioningConfig.Status = string(VersionEnabled)
-	err = client.SetBucketVersioning(bucketName, versioningConfig, GetResponseHeader(&respHeader))
-	c.Assert(err, IsNil)
-	c.Assert(GetRequestId(respHeader) != "", Equals, true)
-
-	bucketResult, err = client.GetBucketInfo(bucketName)
-	c.Assert(err, IsNil)
-	c.Assert(bucketResult.BucketInfo.Versioning, Equals, string(VersionEnabled))
+	bucket, err := client.Bucket(bucketName)
+	objectName := objectNamePrefix + randStr(8)
+	fileName := "oss-sdk-test-file-" + randLowStr(5) + ".shtml"
+	createFile(fileName, "123", c)
 
-	// put bucket version:Suspended
-	versioningConfig.Status = string(VersionSuspended)
-	err = client.SetBucketVersioning(bucketName, versioningConfig)
+	err = bucket.PutObjectFromFile(objectName, fileName)
 	c.Assert(err, IsNil)
 
-	bucketResult, err = client.GetBucketInfo(bucketName)
+	headResult, err := bucket.GetObjectDetailedMeta(objectName)
 	c.Assert(err, IsNil)
-	c.Assert(bucketResult.BucketInfo.Versioning, Equals, string(VersionSuspended))
-
+	c.Assert(headResult.Get("Content-Type"), Equals, "text/html")
+	os.Remove(fileName)
 	forceDeleteBucket(client, bucketName, c)
 }
 

+ 0 - 1
oss/client_test.go

@@ -2338,7 +2338,6 @@ func (s *OssClientSuite) TestBucketEncyptionPutObjectError(c *C) {
 	// SetBucketEncryption:KMS ,""
 	encryptionRule := ServerEncryptionRule{}
 	encryptionRule.SSEDefault.SSEAlgorithm = string(KMSAlgorithm)
-	encryptionRule.SSEDefault.KMSMasterKeyID = "123"
 
 	var responseHeader http.Header
 	err = client.SetBucketEncryption(bucketName, encryptionRule, GetResponseHeader(&responseHeader))

+ 552 - 226
oss/mime.go

@@ -7,232 +7,558 @@ import (
 )
 
 var extToMimeType = map[string]string{
-	".xlsx":    "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
-	".xltx":    "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
-	".potx":    "application/vnd.openxmlformats-officedocument.presentationml.template",
-	".ppsx":    "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
-	".pptx":    "application/vnd.openxmlformats-officedocument.presentationml.presentation",
-	".sldx":    "application/vnd.openxmlformats-officedocument.presentationml.slide",
-	".docx":    "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
-	".dotx":    "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
-	".xlam":    "application/vnd.ms-excel.addin.macroEnabled.12",
-	".xlsb":    "application/vnd.ms-excel.sheet.binary.macroEnabled.12",
-	".apk":     "application/vnd.android.package-archive",
-	".hqx":     "application/mac-binhex40",
-	".cpt":     "application/mac-compactpro",
-	".doc":     "application/msword",
-	".ogg":     "application/ogg",
-	".pdf":     "application/pdf",
-	".rtf":     "text/rtf",
-	".mif":     "application/vnd.mif",
-	".xls":     "application/vnd.ms-excel",
-	".ppt":     "application/vnd.ms-powerpoint",
-	".odc":     "application/vnd.oasis.opendocument.chart",
-	".odb":     "application/vnd.oasis.opendocument.database",
-	".odf":     "application/vnd.oasis.opendocument.formula",
-	".odg":     "application/vnd.oasis.opendocument.graphics",
-	".otg":     "application/vnd.oasis.opendocument.graphics-template",
-	".odi":     "application/vnd.oasis.opendocument.image",
-	".odp":     "application/vnd.oasis.opendocument.presentation",
-	".otp":     "application/vnd.oasis.opendocument.presentation-template",
-	".ods":     "application/vnd.oasis.opendocument.spreadsheet",
-	".ots":     "application/vnd.oasis.opendocument.spreadsheet-template",
-	".odt":     "application/vnd.oasis.opendocument.text",
-	".odm":     "application/vnd.oasis.opendocument.text-master",
-	".ott":     "application/vnd.oasis.opendocument.text-template",
-	".oth":     "application/vnd.oasis.opendocument.text-web",
-	".sxw":     "application/vnd.sun.xml.writer",
-	".stw":     "application/vnd.sun.xml.writer.template",
-	".sxc":     "application/vnd.sun.xml.calc",
-	".stc":     "application/vnd.sun.xml.calc.template",
-	".sxd":     "application/vnd.sun.xml.draw",
-	".std":     "application/vnd.sun.xml.draw.template",
-	".sxi":     "application/vnd.sun.xml.impress",
-	".sti":     "application/vnd.sun.xml.impress.template",
-	".sxg":     "application/vnd.sun.xml.writer.global",
-	".sxm":     "application/vnd.sun.xml.math",
-	".sis":     "application/vnd.symbian.install",
-	".wbxml":   "application/vnd.wap.wbxml",
-	".wmlc":    "application/vnd.wap.wmlc",
-	".wmlsc":   "application/vnd.wap.wmlscriptc",
-	".bcpio":   "application/x-bcpio",
-	".torrent": "application/x-bittorrent",
-	".bz2":     "application/x-bzip2",
-	".vcd":     "application/x-cdlink",
-	".pgn":     "application/x-chess-pgn",
-	".cpio":    "application/x-cpio",
-	".csh":     "application/x-csh",
-	".dvi":     "application/x-dvi",
-	".spl":     "application/x-futuresplash",
-	".gtar":    "application/x-gtar",
-	".hdf":     "application/x-hdf",
-	".jar":     "application/x-java-archive",
-	".jnlp":    "application/x-java-jnlp-file",
-	".js":      "application/x-javascript",
-	".ksp":     "application/x-kspread",
-	".chrt":    "application/x-kchart",
-	".kil":     "application/x-killustrator",
-	".latex":   "application/x-latex",
-	".rpm":     "application/x-rpm",
-	".sh":      "application/x-sh",
-	".shar":    "application/x-shar",
-	".swf":     "application/x-shockwave-flash",
-	".sit":     "application/x-stuffit",
-	".sv4cpio": "application/x-sv4cpio",
-	".sv4crc":  "application/x-sv4crc",
-	".tar":     "application/x-tar",
-	".tcl":     "application/x-tcl",
-	".tex":     "application/x-tex",
-	".man":     "application/x-troff-man",
-	".me":      "application/x-troff-me",
-	".ms":      "application/x-troff-ms",
-	".ustar":   "application/x-ustar",
-	".src":     "application/x-wais-source",
-	".zip":     "application/zip",
-	".m3u":     "audio/x-mpegurl",
-	".ra":      "audio/x-pn-realaudio",
-	".wav":     "audio/x-wav",
-	".wma":     "audio/x-ms-wma",
-	".wax":     "audio/x-ms-wax",
-	".pdb":     "chemical/x-pdb",
-	".xyz":     "chemical/x-xyz",
-	".bmp":     "image/bmp",
-	".gif":     "image/gif",
-	".ief":     "image/ief",
-	".png":     "image/png",
-	".wbmp":    "image/vnd.wap.wbmp",
-	".ras":     "image/x-cmu-raster",
-	".pnm":     "image/x-portable-anymap",
-	".pbm":     "image/x-portable-bitmap",
-	".pgm":     "image/x-portable-graymap",
-	".ppm":     "image/x-portable-pixmap",
-	".rgb":     "image/x-rgb",
-	".xbm":     "image/x-xbitmap",
-	".xpm":     "image/x-xpixmap",
-	".xwd":     "image/x-xwindowdump",
-	".css":     "text/css",
-	".rtx":     "text/richtext",
-	".tsv":     "text/tab-separated-values",
-	".jad":     "text/vnd.sun.j2me.app-descriptor",
-	".wml":     "text/vnd.wap.wml",
-	".wmls":    "text/vnd.wap.wmlscript",
-	".etx":     "text/x-setext",
-	".mxu":     "video/vnd.mpegurl",
-	".flv":     "video/x-flv",
-	".wm":      "video/x-ms-wm",
-	".wmv":     "video/x-ms-wmv",
-	".wmx":     "video/x-ms-wmx",
-	".wvx":     "video/x-ms-wvx",
-	".avi":     "video/x-msvideo",
-	".movie":   "video/x-sgi-movie",
-	".ice":     "x-conference/x-cooltalk",
-	".3gp":     "video/3gpp",
-	".ai":      "application/postscript",
-	".aif":     "audio/x-aiff",
-	".aifc":    "audio/x-aiff",
-	".aiff":    "audio/x-aiff",
-	".asc":     "text/plain",
-	".atom":    "application/atom+xml",
-	".au":      "audio/basic",
-	".bin":     "application/octet-stream",
-	".cdf":     "application/x-netcdf",
-	".cgm":     "image/cgm",
-	".class":   "application/octet-stream",
-	".dcr":     "application/x-director",
-	".dif":     "video/x-dv",
-	".dir":     "application/x-director",
-	".djv":     "image/vnd.djvu",
-	".djvu":    "image/vnd.djvu",
-	".dll":     "application/octet-stream",
-	".dmg":     "application/octet-stream",
-	".dms":     "application/octet-stream",
-	".dtd":     "application/xml-dtd",
-	".dv":      "video/x-dv",
-	".dxr":     "application/x-director",
-	".eps":     "application/postscript",
-	".exe":     "application/octet-stream",
-	".ez":      "application/andrew-inset",
-	".gram":    "application/srgs",
-	".grxml":   "application/srgs+xml",
-	".gz":      "application/x-gzip",
-	".htm":     "text/html",
-	".html":    "text/html",
-	".ico":     "image/x-icon",
-	".ics":     "text/calendar",
-	".ifb":     "text/calendar",
-	".iges":    "model/iges",
-	".igs":     "model/iges",
-	".jp2":     "image/jp2",
-	".jpe":     "image/jpeg",
-	".jpeg":    "image/jpeg",
-	".jpg":     "image/jpeg",
-	".kar":     "audio/midi",
-	".lha":     "application/octet-stream",
-	".lzh":     "application/octet-stream",
-	".m4a":     "audio/mp4a-latm",
-	".m4p":     "audio/mp4a-latm",
-	".m4u":     "video/vnd.mpegurl",
-	".m4v":     "video/x-m4v",
-	".mac":     "image/x-macpaint",
-	".mathml":  "application/mathml+xml",
-	".mesh":    "model/mesh",
-	".mid":     "audio/midi",
-	".midi":    "audio/midi",
-	".mov":     "video/quicktime",
-	".mp2":     "audio/mpeg",
-	".mp3":     "audio/mpeg",
-	".mp4":     "video/mp4",
-	".mpe":     "video/mpeg",
-	".mpeg":    "video/mpeg",
-	".mpg":     "video/mpeg",
-	".mpga":    "audio/mpeg",
-	".msh":     "model/mesh",
-	".nc":      "application/x-netcdf",
-	".oda":     "application/oda",
-	".ogv":     "video/ogv",
-	".pct":     "image/pict",
-	".pic":     "image/pict",
-	".pict":    "image/pict",
-	".pnt":     "image/x-macpaint",
-	".pntg":    "image/x-macpaint",
-	".ps":      "application/postscript",
-	".qt":      "video/quicktime",
-	".qti":     "image/x-quicktime",
-	".qtif":    "image/x-quicktime",
-	".ram":     "audio/x-pn-realaudio",
-	".rdf":     "application/rdf+xml",
-	".rm":      "application/vnd.rn-realmedia",
-	".roff":    "application/x-troff",
-	".sgm":     "text/sgml",
-	".sgml":    "text/sgml",
-	".silo":    "model/mesh",
-	".skd":     "application/x-koan",
-	".skm":     "application/x-koan",
-	".skp":     "application/x-koan",
-	".skt":     "application/x-koan",
-	".smi":     "application/smil",
-	".smil":    "application/smil",
-	".snd":     "audio/basic",
-	".so":      "application/octet-stream",
-	".svg":     "image/svg+xml",
-	".t":       "application/x-troff",
-	".texi":    "application/x-texinfo",
-	".texinfo": "application/x-texinfo",
-	".tif":     "image/tiff",
-	".tiff":    "image/tiff",
-	".tr":      "application/x-troff",
-	".txt":     "text/plain",
-	".vrml":    "model/vrml",
-	".vxml":    "application/voicexml+xml",
-	".webm":    "video/webm",
-	".wrl":     "model/vrml",
-	".xht":     "application/xhtml+xml",
-	".xhtml":   "application/xhtml+xml",
-	".xml":     "application/xml",
-	".xsl":     "application/xml",
-	".xslt":    "application/xslt+xml",
-	".xul":     "application/vnd.mozilla.xul+xml",
-	".webp":    "image/webp",
+	".xlsx":          "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
+	".xltx":          "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
+	".potx":          "application/vnd.openxmlformats-officedocument.presentationml.template",
+	".ppsx":          "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
+	".pptx":          "application/vnd.openxmlformats-officedocument.presentationml.presentation",
+	".sldx":          "application/vnd.openxmlformats-officedocument.presentationml.slide",
+	".docx":          "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
+	".dotx":          "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
+	".xlam":          "application/vnd.ms-excel.addin.macroEnabled.12",
+	".xlsb":          "application/vnd.ms-excel.sheet.binary.macroEnabled.12",
+	".apk":           "application/vnd.android.package-archive",
+	".hqx":           "application/mac-binhex40",
+	".cpt":           "application/mac-compactpro",
+	".doc":           "application/msword",
+	".ogg":           "application/ogg",
+	".pdf":           "application/pdf",
+	".rtf":           "text/rtf",
+	".mif":           "application/vnd.mif",
+	".xls":           "application/vnd.ms-excel",
+	".ppt":           "application/vnd.ms-powerpoint",
+	".odc":           "application/vnd.oasis.opendocument.chart",
+	".odb":           "application/vnd.oasis.opendocument.database",
+	".odf":           "application/vnd.oasis.opendocument.formula",
+	".odg":           "application/vnd.oasis.opendocument.graphics",
+	".otg":           "application/vnd.oasis.opendocument.graphics-template",
+	".odi":           "application/vnd.oasis.opendocument.image",
+	".odp":           "application/vnd.oasis.opendocument.presentation",
+	".otp":           "application/vnd.oasis.opendocument.presentation-template",
+	".ods":           "application/vnd.oasis.opendocument.spreadsheet",
+	".ots":           "application/vnd.oasis.opendocument.spreadsheet-template",
+	".odt":           "application/vnd.oasis.opendocument.text",
+	".odm":           "application/vnd.oasis.opendocument.text-master",
+	".ott":           "application/vnd.oasis.opendocument.text-template",
+	".oth":           "application/vnd.oasis.opendocument.text-web",
+	".sxw":           "application/vnd.sun.xml.writer",
+	".stw":           "application/vnd.sun.xml.writer.template",
+	".sxc":           "application/vnd.sun.xml.calc",
+	".stc":           "application/vnd.sun.xml.calc.template",
+	".sxd":           "application/vnd.sun.xml.draw",
+	".std":           "application/vnd.sun.xml.draw.template",
+	".sxi":           "application/vnd.sun.xml.impress",
+	".sti":           "application/vnd.sun.xml.impress.template",
+	".sxg":           "application/vnd.sun.xml.writer.global",
+	".sxm":           "application/vnd.sun.xml.math",
+	".sis":           "application/vnd.symbian.install",
+	".wbxml":         "application/vnd.wap.wbxml",
+	".wmlc":          "application/vnd.wap.wmlc",
+	".wmlsc":         "application/vnd.wap.wmlscriptc",
+	".bcpio":         "application/x-bcpio",
+	".torrent":       "application/x-bittorrent",
+	".bz2":           "application/x-bzip2",
+	".vcd":           "application/x-cdlink",
+	".pgn":           "application/x-chess-pgn",
+	".cpio":          "application/x-cpio",
+	".csh":           "application/x-csh",
+	".dvi":           "application/x-dvi",
+	".spl":           "application/x-futuresplash",
+	".gtar":          "application/x-gtar",
+	".hdf":           "application/x-hdf",
+	".jar":           "application/x-java-archive",
+	".jnlp":          "application/x-java-jnlp-file",
+	".js":            "application/x-javascript",
+	".ksp":           "application/x-kspread",
+	".chrt":          "application/x-kchart",
+	".kil":           "application/x-killustrator",
+	".latex":         "application/x-latex",
+	".rpm":           "application/x-rpm",
+	".sh":            "application/x-sh",
+	".shar":          "application/x-shar",
+	".swf":           "application/x-shockwave-flash",
+	".sit":           "application/x-stuffit",
+	".sv4cpio":       "application/x-sv4cpio",
+	".sv4crc":        "application/x-sv4crc",
+	".tar":           "application/x-tar",
+	".tcl":           "application/x-tcl",
+	".tex":           "application/x-tex",
+	".man":           "application/x-troff-man",
+	".me":            "application/x-troff-me",
+	".ms":            "application/x-troff-ms",
+	".ustar":         "application/x-ustar",
+	".src":           "application/x-wais-source",
+	".zip":           "application/zip",
+	".m3u":           "audio/x-mpegurl",
+	".ra":            "audio/x-pn-realaudio",
+	".wav":           "audio/x-wav",
+	".wma":           "audio/x-ms-wma",
+	".wax":           "audio/x-ms-wax",
+	".pdb":           "chemical/x-pdb",
+	".xyz":           "chemical/x-xyz",
+	".bmp":           "image/bmp",
+	".gif":           "image/gif",
+	".ief":           "image/ief",
+	".png":           "image/png",
+	".wbmp":          "image/vnd.wap.wbmp",
+	".ras":           "image/x-cmu-raster",
+	".pnm":           "image/x-portable-anymap",
+	".pbm":           "image/x-portable-bitmap",
+	".pgm":           "image/x-portable-graymap",
+	".ppm":           "image/x-portable-pixmap",
+	".rgb":           "image/x-rgb",
+	".xbm":           "image/x-xbitmap",
+	".xpm":           "image/x-xpixmap",
+	".xwd":           "image/x-xwindowdump",
+	".css":           "text/css",
+	".rtx":           "text/richtext",
+	".tsv":           "text/tab-separated-values",
+	".jad":           "text/vnd.sun.j2me.app-descriptor",
+	".wml":           "text/vnd.wap.wml",
+	".wmls":          "text/vnd.wap.wmlscript",
+	".etx":           "text/x-setext",
+	".mxu":           "video/vnd.mpegurl",
+	".flv":           "video/x-flv",
+	".wm":            "video/x-ms-wm",
+	".wmv":           "video/x-ms-wmv",
+	".wmx":           "video/x-ms-wmx",
+	".wvx":           "video/x-ms-wvx",
+	".avi":           "video/x-msvideo",
+	".movie":         "video/x-sgi-movie",
+	".ice":           "x-conference/x-cooltalk",
+	".3gp":           "video/3gpp",
+	".ai":            "application/postscript",
+	".aif":           "audio/x-aiff",
+	".aifc":          "audio/x-aiff",
+	".aiff":          "audio/x-aiff",
+	".asc":           "text/plain",
+	".atom":          "application/atom+xml",
+	".au":            "audio/basic",
+	".bin":           "application/octet-stream",
+	".cdf":           "application/x-netcdf",
+	".cgm":           "image/cgm",
+	".class":         "application/octet-stream",
+	".dcr":           "application/x-director",
+	".dif":           "video/x-dv",
+	".dir":           "application/x-director",
+	".djv":           "image/vnd.djvu",
+	".djvu":          "image/vnd.djvu",
+	".dll":           "application/octet-stream",
+	".dmg":           "application/octet-stream",
+	".dms":           "application/octet-stream",
+	".dtd":           "application/xml-dtd",
+	".dv":            "video/x-dv",
+	".dxr":           "application/x-director",
+	".eps":           "application/postscript",
+	".exe":           "application/octet-stream",
+	".ez":            "application/andrew-inset",
+	".gram":          "application/srgs",
+	".grxml":         "application/srgs+xml",
+	".gz":            "application/x-gzip",
+	".htm":           "text/html",
+	".html":          "text/html",
+	".ico":           "image/x-icon",
+	".ics":           "text/calendar",
+	".ifb":           "text/calendar",
+	".iges":          "model/iges",
+	".igs":           "model/iges",
+	".jp2":           "image/jp2",
+	".jpe":           "image/jpeg",
+	".jpeg":          "image/jpeg",
+	".jpg":           "image/jpeg",
+	".kar":           "audio/midi",
+	".lha":           "application/octet-stream",
+	".lzh":           "application/octet-stream",
+	".m4a":           "audio/mp4a-latm",
+	".m4p":           "audio/mp4a-latm",
+	".m4u":           "video/vnd.mpegurl",
+	".m4v":           "video/x-m4v",
+	".mac":           "image/x-macpaint",
+	".mathml":        "application/mathml+xml",
+	".mesh":          "model/mesh",
+	".mid":           "audio/midi",
+	".midi":          "audio/midi",
+	".mov":           "video/quicktime",
+	".mp2":           "audio/mpeg",
+	".mp3":           "audio/mpeg",
+	".mp4":           "video/mp4",
+	".mpe":           "video/mpeg",
+	".mpeg":          "video/mpeg",
+	".mpg":           "video/mpeg",
+	".mpga":          "audio/mpeg",
+	".msh":           "model/mesh",
+	".nc":            "application/x-netcdf",
+	".oda":           "application/oda",
+	".ogv":           "video/ogv",
+	".pct":           "image/pict",
+	".pic":           "image/pict",
+	".pict":          "image/pict",
+	".pnt":           "image/x-macpaint",
+	".pntg":          "image/x-macpaint",
+	".ps":            "application/postscript",
+	".qt":            "video/quicktime",
+	".qti":           "image/x-quicktime",
+	".qtif":          "image/x-quicktime",
+	".ram":           "audio/x-pn-realaudio",
+	".rdf":           "application/rdf+xml",
+	".rm":            "application/vnd.rn-realmedia",
+	".roff":          "application/x-troff",
+	".sgm":           "text/sgml",
+	".sgml":          "text/sgml",
+	".silo":          "model/mesh",
+	".skd":           "application/x-koan",
+	".skm":           "application/x-koan",
+	".skp":           "application/x-koan",
+	".skt":           "application/x-koan",
+	".smi":           "application/smil",
+	".smil":          "application/smil",
+	".snd":           "audio/basic",
+	".so":            "application/octet-stream",
+	".svg":           "image/svg+xml",
+	".t":             "application/x-troff",
+	".texi":          "application/x-texinfo",
+	".texinfo":       "application/x-texinfo",
+	".tif":           "image/tiff",
+	".tiff":          "image/tiff",
+	".tr":            "application/x-troff",
+	".txt":           "text/plain",
+	".vrml":          "model/vrml",
+	".vxml":          "application/voicexml+xml",
+	".webm":          "video/webm",
+	".wrl":           "model/vrml",
+	".xht":           "application/xhtml+xml",
+	".xhtml":         "application/xhtml+xml",
+	".xml":           "application/xml",
+	".xsl":           "application/xml",
+	".xslt":          "application/xslt+xml",
+	".xul":           "application/vnd.mozilla.xul+xml",
+	".webp":          "image/webp",
+	".323":           "text/h323",
+	".aab":           "application/x-authoware-bin",
+	".aam":           "application/x-authoware-map",
+	".aas":           "application/x-authoware-seg",
+	".acx":           "application/internet-property-stream",
+	".als":           "audio/X-Alpha5",
+	".amc":           "application/x-mpeg",
+	".ani":           "application/octet-stream",
+	".asd":           "application/astound",
+	".asf":           "video/x-ms-asf",
+	".asn":           "application/astound",
+	".asp":           "application/x-asap",
+	".asr":           "video/x-ms-asf",
+	".asx":           "video/x-ms-asf",
+	".avb":           "application/octet-stream",
+	".awb":           "audio/amr-wb",
+	".axs":           "application/olescript",
+	".bas":           "text/plain",
+	".bin ":          "application/octet-stream",
+	".bld":           "application/bld",
+	".bld2":          "application/bld2",
+	".bpk":           "application/octet-stream",
+	".c":             "text/plain",
+	".cal":           "image/x-cals",
+	".cat":           "application/vnd.ms-pkiseccat",
+	".ccn":           "application/x-cnc",
+	".cco":           "application/x-cocoa",
+	".cer":           "application/x-x509-ca-cert",
+	".cgi":           "magnus-internal/cgi",
+	".chat":          "application/x-chat",
+	".clp":           "application/x-msclip",
+	".cmx":           "image/x-cmx",
+	".co":            "application/x-cult3d-object",
+	".cod":           "image/cis-cod",
+	".conf":          "text/plain",
+	".cpp":           "text/plain",
+	".crd":           "application/x-mscardfile",
+	".crl":           "application/pkix-crl",
+	".crt":           "application/x-x509-ca-cert",
+	".csm":           "chemical/x-csml",
+	".csml":          "chemical/x-csml",
+	".cur":           "application/octet-stream",
+	".dcm":           "x-lml/x-evm",
+	".dcx":           "image/x-dcx",
+	".der":           "application/x-x509-ca-cert",
+	".dhtml":         "text/html",
+	".dot":           "application/msword",
+	".dwf":           "drawing/x-dwf",
+	".dwg":           "application/x-autocad",
+	".dxf":           "application/x-autocad",
+	".ebk":           "application/x-expandedbook",
+	".emb":           "chemical/x-embl-dl-nucleotide",
+	".embl":          "chemical/x-embl-dl-nucleotide",
+	".epub":          "application/epub+zip",
+	".eri":           "image/x-eri",
+	".es":            "audio/echospeech",
+	".esl":           "audio/echospeech",
+	".etc":           "application/x-earthtime",
+	".evm":           "x-lml/x-evm",
+	".evy":           "application/envoy",
+	".fh4":           "image/x-freehand",
+	".fh5":           "image/x-freehand",
+	".fhc":           "image/x-freehand",
+	".fif":           "application/fractals",
+	".flr":           "x-world/x-vrml",
+	".fm":            "application/x-maker",
+	".fpx":           "image/x-fpx",
+	".fvi":           "video/isivideo",
+	".gau":           "chemical/x-gaussian-input",
+	".gca":           "application/x-gca-compressed",
+	".gdb":           "x-lml/x-gdb",
+	".gps":           "application/x-gps",
+	".h":             "text/plain",
+	".hdm":           "text/x-hdml",
+	".hdml":          "text/x-hdml",
+	".hlp":           "application/winhlp",
+	".hta":           "application/hta",
+	".htc":           "text/x-component",
+	".hts":           "text/html",
+	".htt":           "text/webviewhtml",
+	".ifm":           "image/gif",
+	".ifs":           "image/ifs",
+	".iii":           "application/x-iphone",
+	".imy":           "audio/melody",
+	".ins":           "application/x-internet-signup",
+	".ips":           "application/x-ipscript",
+	".ipx":           "application/x-ipix",
+	".isp":           "application/x-internet-signup",
+	".it":            "audio/x-mod",
+	".itz":           "audio/x-mod",
+	".ivr":           "i-world/i-vrml",
+	".j2k":           "image/j2k",
+	".jam":           "application/x-jam",
+	".java":          "text/plain",
+	".jfif":          "image/pipeg",
+	".jpz":           "image/jpeg",
+	".jwc":           "application/jwc",
+	".kjx":           "application/x-kjx",
+	".lak":           "x-lml/x-lak",
+	".lcc":           "application/fastman",
+	".lcl":           "application/x-digitalloca",
+	".lcr":           "application/x-digitalloca",
+	".lgh":           "application/lgh",
+	".lml":           "x-lml/x-lml",
+	".lmlpack":       "x-lml/x-lmlpack",
+	".log":           "text/plain",
+	".lsf":           "video/x-la-asf",
+	".lsx":           "video/x-la-asf",
+	".m13":           "application/x-msmediaview",
+	".m14":           "application/x-msmediaview",
+	".m15":           "audio/x-mod",
+	".m3url":         "audio/x-mpegurl",
+	".m4b":           "audio/mp4a-latm",
+	".ma1":           "audio/ma1",
+	".ma2":           "audio/ma2",
+	".ma3":           "audio/ma3",
+	".ma5":           "audio/ma5",
+	".map":           "magnus-internal/imagemap",
+	".mbd":           "application/mbedlet",
+	".mct":           "application/x-mascot",
+	".mdb":           "application/x-msaccess",
+	".mdz":           "audio/x-mod",
+	".mel":           "text/x-vmel",
+	".mht":           "message/rfc822",
+	".mhtml":         "message/rfc822",
+	".mi":            "application/x-mif",
+	".mil":           "image/x-cals",
+	".mio":           "audio/x-mio",
+	".mmf":           "application/x-skt-lbs",
+	".mng":           "video/x-mng",
+	".mny":           "application/x-msmoney",
+	".moc":           "application/x-mocha",
+	".mocha":         "application/x-mocha",
+	".mod":           "audio/x-mod",
+	".mof":           "application/x-yumekara",
+	".mol":           "chemical/x-mdl-molfile",
+	".mop":           "chemical/x-mopac-input",
+	".mpa":           "video/mpeg",
+	".mpc":           "application/vnd.mpohun.certificate",
+	".mpg4":          "video/mp4",
+	".mpn":           "application/vnd.mophun.application",
+	".mpp":           "application/vnd.ms-project",
+	".mps":           "application/x-mapserver",
+	".mpv2":          "video/mpeg",
+	".mrl":           "text/x-mrml",
+	".mrm":           "application/x-mrm",
+	".msg":           "application/vnd.ms-outlook",
+	".mts":           "application/metastream",
+	".mtx":           "application/metastream",
+	".mtz":           "application/metastream",
+	".mvb":           "application/x-msmediaview",
+	".mzv":           "application/metastream",
+	".nar":           "application/zip",
+	".nbmp":          "image/nbmp",
+	".ndb":           "x-lml/x-ndb",
+	".ndwn":          "application/ndwn",
+	".nif":           "application/x-nif",
+	".nmz":           "application/x-scream",
+	".nokia-op-logo": "image/vnd.nok-oplogo-color",
+	".npx":           "application/x-netfpx",
+	".nsnd":          "audio/nsnd",
+	".nva":           "application/x-neva1",
+	".nws":           "message/rfc822",
+	".oom":           "application/x-AtlasMate-Plugin",
+	".p10":           "application/pkcs10",
+	".p12":           "application/x-pkcs12",
+	".p7b":           "application/x-pkcs7-certificates",
+	".p7c":           "application/x-pkcs7-mime",
+	".p7m":           "application/x-pkcs7-mime",
+	".p7r":           "application/x-pkcs7-certreqresp",
+	".p7s":           "application/x-pkcs7-signature",
+	".pac":           "audio/x-pac",
+	".pae":           "audio/x-epac",
+	".pan":           "application/x-pan",
+	".pcx":           "image/x-pcx",
+	".pda":           "image/x-pda",
+	".pfr":           "application/font-tdpfr",
+	".pfx":           "application/x-pkcs12",
+	".pko":           "application/ynd.ms-pkipko",
+	".pm":            "application/x-perl",
+	".pma":           "application/x-perfmon",
+	".pmc":           "application/x-perfmon",
+	".pmd":           "application/x-pmd",
+	".pml":           "application/x-perfmon",
+	".pmr":           "application/x-perfmon",
+	".pmw":           "application/x-perfmon",
+	".pnz":           "image/png",
+	".pot,":          "application/vnd.ms-powerpoint",
+	".pps":           "application/vnd.ms-powerpoint",
+	".pqf":           "application/x-cprplayer",
+	".pqi":           "application/cprplayer",
+	".prc":           "application/x-prc",
+	".prf":           "application/pics-rules",
+	".prop":          "text/plain",
+	".proxy":         "application/x-ns-proxy-autoconfig",
+	".ptlk":          "application/listenup",
+	".pub":           "application/x-mspublisher",
+	".pvx":           "video/x-pv-pvx",
+	".qcp":           "audio/vnd.qcelp",
+	".r3t":           "text/vnd.rn-realtext3d",
+	".rar":           "application/octet-stream",
+	".rc":            "text/plain",
+	".rf":            "image/vnd.rn-realflash",
+	".rlf":           "application/x-richlink",
+	".rmf":           "audio/x-rmf",
+	".rmi":           "audio/mid",
+	".rmm":           "audio/x-pn-realaudio",
+	".rmvb":          "audio/x-pn-realaudio",
+	".rnx":           "application/vnd.rn-realplayer",
+	".rp":            "image/vnd.rn-realpix",
+	".rt":            "text/vnd.rn-realtext",
+	".rte":           "x-lml/x-gps",
+	".rtg":           "application/metastream",
+	".rv":            "video/vnd.rn-realvideo",
+	".rwc":           "application/x-rogerwilco",
+	".s3m":           "audio/x-mod",
+	".s3z":           "audio/x-mod",
+	".sca":           "application/x-supercard",
+	".scd":           "application/x-msschedule",
+	".sct":           "text/scriptlet",
+	".sdf":           "application/e-score",
+	".sea":           "application/x-stuffit",
+	".setpay":        "application/set-payment-initiation",
+	".setreg":        "application/set-registration-initiation",
+	".shtml":         "text/html",
+	".shtm":          "text/html",
+	".shw":           "application/presentations",
+	".si6":           "image/si6",
+	".si7":           "image/vnd.stiwap.sis",
+	".si9":           "image/vnd.lgtwap.sis",
+	".slc":           "application/x-salsa",
+	".smd":           "audio/x-smd",
+	".smp":           "application/studiom",
+	".smz":           "audio/x-smd",
+	".spc":           "application/x-pkcs7-certificates",
+	".spr":           "application/x-sprite",
+	".sprite":        "application/x-sprite",
+	".sdp":           "application/sdp",
+	".spt":           "application/x-spt",
+	".sst":           "application/vnd.ms-pkicertstore",
+	".stk":           "application/hyperstudio",
+	".stl":           "application/vnd.ms-pkistl",
+	".stm":           "text/html",
+	".svf":           "image/vnd",
+	".svh":           "image/svh",
+	".svr":           "x-world/x-svr",
+	".swfl":          "application/x-shockwave-flash",
+	".tad":           "application/octet-stream",
+	".talk":          "text/x-speech",
+	".taz":           "application/x-tar",
+	".tbp":           "application/x-timbuktu",
+	".tbt":           "application/x-timbuktu",
+	".tgz":           "application/x-compressed",
+	".thm":           "application/vnd.eri.thm",
+	".tki":           "application/x-tkined",
+	".tkined":        "application/x-tkined",
+	".toc":           "application/toc",
+	".toy":           "image/toy",
+	".trk":           "x-lml/x-gps",
+	".trm":           "application/x-msterminal",
+	".tsi":           "audio/tsplayer",
+	".tsp":           "application/dsptype",
+	".ttf":           "application/octet-stream",
+	".ttz":           "application/t-time",
+	".uls":           "text/iuls",
+	".ult":           "audio/x-mod",
+	".uu":            "application/x-uuencode",
+	".uue":           "application/x-uuencode",
+	".vcf":           "text/x-vcard",
+	".vdo":           "video/vdo",
+	".vib":           "audio/vib",
+	".viv":           "video/vivo",
+	".vivo":          "video/vivo",
+	".vmd":           "application/vocaltec-media-desc",
+	".vmf":           "application/vocaltec-media-file",
+	".vmi":           "application/x-dreamcast-vms-info",
+	".vms":           "application/x-dreamcast-vms",
+	".vox":           "audio/voxware",
+	".vqe":           "audio/x-twinvq-plugin",
+	".vqf":           "audio/x-twinvq",
+	".vql":           "audio/x-twinvq",
+	".vre":           "x-world/x-vream",
+	".vrt":           "x-world/x-vrt",
+	".vrw":           "x-world/x-vream",
+	".vts":           "workbook/formulaone",
+	".wcm":           "application/vnd.ms-works",
+	".wdb":           "application/vnd.ms-works",
+	".web":           "application/vnd.xara",
+	".wi":            "image/wavelet",
+	".wis":           "application/x-InstallShield",
+	".wks":           "application/vnd.ms-works",
+	".wmd":           "application/x-ms-wmd",
+	".wmf":           "application/x-msmetafile",
+	".wmlscript":     "text/vnd.wap.wmlscript",
+	".wmz":           "application/x-ms-wmz",
+	".wpng":          "image/x-up-wpng",
+	".wps":           "application/vnd.ms-works",
+	".wpt":           "x-lml/x-gps",
+	".wri":           "application/x-mswrite",
+	".wrz":           "x-world/x-vrml",
+	".ws":            "text/vnd.wap.wmlscript",
+	".wsc":           "application/vnd.wap.wmlscriptc",
+	".wv":            "video/wavelet",
+	".wxl":           "application/x-wxl",
+	".x-gzip":        "application/x-gzip",
+	".xaf":           "x-world/x-vrml",
+	".xar":           "application/vnd.xara",
+	".xdm":           "application/x-xdma",
+	".xdma":          "application/x-xdma",
+	".xdw":           "application/vnd.fujixerox.docuworks",
+	".xhtm":          "application/xhtml+xml",
+	".xla":           "application/vnd.ms-excel",
+	".xlc":           "application/vnd.ms-excel",
+	".xll":           "application/x-excel",
+	".xlm":           "application/vnd.ms-excel",
+	".xlt":           "application/vnd.ms-excel",
+	".xlw":           "application/vnd.ms-excel",
+	".xm":            "audio/x-mod",
+	".xmz":           "audio/x-mod",
+	".xof":           "x-world/x-vrml",
+	".xpi":           "application/x-xpinstall",
+	".xsit":          "text/xml",
+	".yz1":           "application/x-yz1",
+	".z":             "application/x-compress",
+	".zac":           "application/x-zaurus-zac",
+	".json":          "application/json",
 }
 
 // TypeByExtension returns the MIME type associated with the file extension ext.

+ 1 - 1
oss/multipart_test.go

@@ -864,7 +864,7 @@ func (s *OssBucketMultipartSuite) TestUploadFileNegative(c *C) {
 	c.Assert(err, NotNil)
 
 	// File does not exist
-	err = s.bucket.UploadFile(objectName, "/root/123abc9874", 1024*1024*1024)
+	err = s.bucket.UploadFile(objectName, "/root1/123abc9874", 1024*1024*1024)
 	c.Assert(err, NotNil)
 
 	// Invalid key , key is empty.

+ 2 - 1
oss/progress_test.go

@@ -8,6 +8,7 @@ import (
 	"math/rand"
 	"os"
 	"strings"
+	"sync/atomic"
 
 	. "gopkg.in/check.v1"
 )
@@ -112,7 +113,7 @@ func (listener *OssProgressListener) ProgressChanged(event *ProgressEvent) {
 		testLogger.Printf("Transfer Started, ConsumedBytes: %d, TotalBytes %d.\n",
 			event.ConsumedBytes, event.TotalBytes)
 	case TransferDataEvent:
-		listener.TotalRwBytes += event.RwBytes
+		atomic.AddInt64(&listener.TotalRwBytes, event.RwBytes)
 		testLogger.Printf("Transfer Data, ConsumedBytes: %d, TotalBytes %d, %d%%.\n",
 			event.ConsumedBytes, event.TotalBytes, event.ConsumedBytes*100/event.TotalBytes)
 	case TransferCompletedEvent: