@@ -322,7 +322,7 @@ function putBucketCors(params, callback) {
322322 var CORSRules = CORSConfiguration [ 'CORSRules' ] || params [ 'CORSRules' ] || [ ] ;
323323 CORSRules = util . clone ( util . isArray ( CORSRules ) ? CORSRules : [ CORSRules ] ) ;
324324 util . each ( CORSRules , function ( rule ) {
325- util . each ( [ 'AllowedOrigin' , 'AllowedHeader' , 'AllowedMethod' , 'ExposeHeader' ] , function ( key , k ) {
325+ util . each ( [ 'AllowedOrigin' , 'AllowedHeader' , 'AllowedMethod' , 'ExposeHeader' ] , function ( key ) {
326326 var sKey = key + 's' ;
327327 var val = rule [ sKey ] || rule [ key ] || [ ] ;
328328 delete rule [ sKey ] ;
@@ -390,7 +390,7 @@ function getBucketCors(params, callback) {
390390 CORSRules = util . clone ( util . isArray ( CORSRules ) ? CORSRules : [ CORSRules ] ) ;
391391
392392 util . each ( CORSRules , function ( rule ) {
393- util . each ( [ 'AllowedOrigin' , 'AllowedHeader' , 'AllowedMethod' , 'ExposeHeader' ] , function ( key , j ) {
393+ util . each ( [ 'AllowedOrigin' , 'AllowedHeader' , 'AllowedMethod' , 'ExposeHeader' ] , function ( key ) {
394394 var sKey = key + 's' ;
395395 var val = rule [ sKey ] || rule [ key ] || [ ] ;
396396 delete rule [ key ] ;
@@ -1645,7 +1645,6 @@ function putBucketAccelerate(params, callback) {
16451645 headers [ 'Content-MD5' ] = util . binaryBase64 ( util . md5 ( xml ) ) ;
16461646
16471647 submitRequest . call ( this , {
1648- Interface : 'putBucketAccelerate' ,
16491648 Action : 'name/cos:PutBucketAccelerate' ,
16501649 method : 'PUT' ,
16511650 Bucket : params . Bucket ,
@@ -1664,7 +1663,6 @@ function putBucketAccelerate(params, callback) {
16641663
16651664function getBucketAccelerate ( params , callback ) {
16661665 submitRequest . call ( this , {
1667- Interface : 'getBucketAccelerate' ,
16681666 Action : 'name/cos:GetBucketAccelerate' ,
16691667 method : 'GET' ,
16701668 Bucket : params . Bucket ,
@@ -1712,9 +1710,7 @@ function headObject(params, callback) {
17121710 }
17131711 return callback ( err ) ;
17141712 }
1715- if ( data . headers && data . headers . etag ) {
1716- data . ETag = data . headers && data . headers . etag ;
1717- }
1713+ data . ETag = util . attr ( data . headers , 'etag' , '' ) ;
17181714 callback ( null , data ) ;
17191715 } ) ;
17201716}
@@ -1879,10 +1875,8 @@ function getObject(params, callback) {
18791875 result . Body = data . body ;
18801876 }
18811877 }
1882- if ( data . headers && data . headers . etag ) {
1883- result . ETag = data . headers && data . headers . etag ;
1884- }
18851878 util . extend ( result , {
1879+ ETag : util . attr ( data . headers , 'etag' , '' ) ,
18861880 statusCode : data . statusCode ,
18871881 headers : data . headers ,
18881882 } ) ;
@@ -1930,7 +1924,7 @@ function putObject(params, callback) {
19301924 var FileSize = params . ContentLength ;
19311925 var onProgress = util . throttleOnProgress . call ( self , FileSize , params . onProgress ) ;
19321926
1933- // 特殊处理 Cache-Control
1927+ // 特殊处理 Cache-Control、Content-Type,避免代理更改这两个字段导致写入到 Object 属性里
19341928 var headers = params . Headers ;
19351929 if ( ! headers [ 'Cache-Control' ] && ! headers [ 'cache-control' ] ) headers [ 'Cache-Control' ] = '' ;
19361930
@@ -2166,8 +2160,8 @@ function optionsObject(params, callback) {
21662160 * @param {String } MetadataDirective 是否拷贝元数据,枚举值:Copy, Replaced,默认值Copy。假如标记为Copy,忽略Header中的用户元数据信息直接复制;假如标记为Replaced,按Header信息修改元数据。当目标路径和原路径一致,即用户试图修改元数据时,必须为Replaced
21672161 * @param {String } CopySourceIfModifiedSince 当Object在指定时间后被修改,则执行操作,否则返回412。可与x-cos-copy-source-If-None-Match一起使用,与其他条件联合使用返回冲突。
21682162 * @param {String } CopySourceIfUnmodifiedSince 当Object在指定时间后未被修改,则执行操作,否则返回412。可与x-cos-copy-source-If-Match一起使用,与其他条件联合使用返回冲突。
2169- * @param {String } CopySourceIfMatch 当Object的Etag和给定一致时 ,则执行操作,否则返回412。可与x-cos-copy-source-If-Unmodified-Since一起使用,与其他条件联合使用返回冲突。
2170- * @param {String } CopySourceIfNoneMatch 当Object的Etag和给定不一致时 ,则执行操作,否则返回412。可与x-cos-copy-source-If-Modified-Since一起使用,与其他条件联合使用返回冲突。
2163+ * @param {String } CopySourceIfMatch 当Object的ETag和给定一致时 ,则执行操作,否则返回412。可与x-cos-copy-source-If-Unmodified-Since一起使用,与其他条件联合使用返回冲突。
2164+ * @param {String } CopySourceIfNoneMatch 当Object的ETag和给定不一致时 ,则执行操作,否则返回412。可与x-cos-copy-source-If-Modified-Since一起使用,与其他条件联合使用返回冲突。
21712165 * @param {String } StorageClass 存储级别,枚举值:存储级别,枚举值:Standard, Standard_IA,Archive;默认值:Standard
21722166 * @param {String } CacheControl 指定所有缓存机制在整个请求/响应链中必须服从的指令。
21732167 * @param {String } ContentDisposition MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件
@@ -2368,7 +2362,6 @@ function putObjectTagging(params, callback) {
23682362 headers [ 'Content-MD5' ] = util . binaryBase64 ( util . md5 ( xml ) ) ;
23692363
23702364 submitRequest . call ( this , {
2371- Interface : 'putObjectTagging' ,
23722365 Action : 'name/cos:PutObjectTagging' ,
23732366 method : 'PUT' ,
23742367 Bucket : params . Bucket ,
@@ -2403,7 +2396,6 @@ function putObjectTagging(params, callback) {
24032396function getObjectTagging ( params , callback ) {
24042397
24052398 submitRequest . call ( this , {
2406- Interface : 'getObjectTagging' ,
24072399 Action : 'name/cos:GetObjectTagging' ,
24082400 method : 'GET' ,
24092401 Key : params . Key ,
@@ -2451,7 +2443,6 @@ function getObjectTagging(params, callback) {
24512443 */
24522444function deleteObjectTagging ( params , callback ) {
24532445 submitRequest . call ( this , {
2454- Interface : 'deleteObjectTagging' ,
24552446 Action : 'name/cos:DeleteObjectTagging' ,
24562447 method : 'DELETE' ,
24572448 Bucket : params . Bucket ,
@@ -2512,7 +2503,6 @@ function selectObjectContent(params, callback) {
25122503 } ) ;
25132504 }
25142505 submitRequest . call ( this , {
2515- Interface : 'selectObjectContent' ,
25162506 Action : 'name/cos:GetObject' ,
25172507 method : 'POST' ,
25182508 Bucket : params . Bucket ,
@@ -2614,7 +2604,10 @@ function multipartInit(params, callback) {
26142604
26152605 // 特殊处理 Cache-Control
26162606 var headers = params . Headers ;
2607+
2608+ // 特殊处理 Cache-Control、Content-Type
26172609 if ( ! headers [ 'Cache-Control' ] && ! headers [ 'cache-control' ] ) headers [ 'Cache-Control' ] = '' ;
2610+ if ( ! headers [ 'Content-Type' ] && ! headers [ 'content-type' ] ) headers [ 'Content-Type' ] = params . Body && params . Body . type || '' ;
26182611
26192612 submitRequest . call ( this , {
26202613 Action : 'name/cos:InitiateMultipartUpload' ,
@@ -2675,12 +2668,9 @@ function multipartUpload(params, callback) {
26752668 onProgress : params . onProgress ,
26762669 body : params . Body || null
26772670 } , function ( err , data ) {
2678- if ( err ) {
2679- return callback ( err ) ;
2680- }
2681- data [ 'headers' ] = data [ 'headers' ] || { } ;
2671+ if ( err ) return callback ( err ) ;
26822672 callback ( null , {
2683- ETag : data [ ' headers' ] [ ' etag'] || '' ,
2673+ ETag : util . attr ( data . headers , ' etag', '' ) ,
26842674 statusCode : data . statusCode ,
26852675 headers : data . headers ,
26862676 } ) ;
@@ -2748,8 +2738,23 @@ function multipartComplete(params, callback) {
27482738 object : params . Key ,
27492739 isLocation : true ,
27502740 } ) ;
2751- var CompleteMultipartUploadResult = data . CompleteMultipartUploadResult || { } ;
2752- var result = util . extend ( CompleteMultipartUploadResult , {
2741+ var res = data . CompleteMultipartUploadResult || { } ;
2742+ if ( res . ProcessResults ) {
2743+ if ( res && res . ProcessResults ) {
2744+ res . UploadResult = {
2745+ OriginalInfo : {
2746+ Key : res . Key ,
2747+ Location : url ,
2748+ ETag : res . ETag ,
2749+ ImageInfo : res . ImageInfo ,
2750+ } ,
2751+ ProcessResults : res . ProcessResults ,
2752+ } ;
2753+ delete res . ImageInfo ;
2754+ delete res . ProcessResults ;
2755+ }
2756+ }
2757+ var result = util . extend ( res , {
27532758 Location : url ,
27542759 statusCode : data . statusCode ,
27552760 headers : data . headers ,
@@ -3351,10 +3356,7 @@ function submitRequest(params, callback) {
33513356 ResourceKey : params . ResourceKey ,
33523357 Scope : params . Scope ,
33533358 } , function ( err , AuthData ) {
3354- if ( err ) {
3355- callback ( err ) ;
3356- return ;
3357- }
3359+ if ( err ) return callback ( err ) ;
33583360 params . AuthData = AuthData ;
33593361 _submitRequest . call ( self , params , function ( err , data ) {
33603362 if ( err &&
@@ -3391,7 +3393,6 @@ function _submitRequest(params, callback) {
33913393 var method = params . method || 'GET' ;
33923394 var url = params . url ;
33933395 var body = params . body ;
3394- var json = params . json ;
33953396 var rawBody = params . rawBody ;
33963397
33973398 // 处理 readStream and body
@@ -3420,7 +3421,6 @@ function _submitRequest(params, callback) {
34203421 headers : params . headers ,
34213422 qs : params . qs ,
34223423 body : body ,
3423- json : json ,
34243424 } ;
34253425
34263426 // 获取签名
0 commit comments