@@ -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
@@ -1998,9 +1992,7 @@ function deleteObject(params, callback) {
19981992 } , function ( err , data ) {
19991993 if ( err ) {
20001994 var statusCode = err . statusCode ;
2001- if ( statusCode && statusCode === 204 ) {
2002- return callback ( null , { statusCode : statusCode } ) ;
2003- } else if ( statusCode && statusCode === 404 ) {
1995+ if ( statusCode && statusCode === 404 ) {
20041996 return callback ( null , { BucketNotFound : true , statusCode : statusCode , } ) ;
20051997 } else {
20061998 return callback ( err ) ;
@@ -2168,8 +2160,8 @@ function optionsObject(params, callback) {
21682160 * @param {String } MetadataDirective 是否拷贝元数据,枚举值:Copy, Replaced,默认值Copy。假如标记为Copy,忽略Header中的用户元数据信息直接复制;假如标记为Replaced,按Header信息修改元数据。当目标路径和原路径一致,即用户试图修改元数据时,必须为Replaced
21692161 * @param {String } CopySourceIfModifiedSince 当Object在指定时间后被修改,则执行操作,否则返回412。可与x-cos-copy-source-If-None-Match一起使用,与其他条件联合使用返回冲突。
21702162 * @param {String } CopySourceIfUnmodifiedSince 当Object在指定时间后未被修改,则执行操作,否则返回412。可与x-cos-copy-source-If-Match一起使用,与其他条件联合使用返回冲突。
2171- * @param {String } CopySourceIfMatch 当Object的Etag和给定一致时 ,则执行操作,否则返回412。可与x-cos-copy-source-If-Unmodified-Since一起使用,与其他条件联合使用返回冲突。
2172- * @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一起使用,与其他条件联合使用返回冲突。
21732165 * @param {String } StorageClass 存储级别,枚举值:存储级别,枚举值:Standard, Standard_IA,Archive;默认值:Standard
21742166 * @param {String } CacheControl 指定所有缓存机制在整个请求/响应链中必须服从的指令。
21752167 * @param {String } ContentDisposition MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件
@@ -2370,7 +2362,6 @@ function putObjectTagging(params, callback) {
23702362 headers [ 'Content-MD5' ] = util . binaryBase64 ( util . md5 ( xml ) ) ;
23712363
23722364 submitRequest . call ( this , {
2373- Interface : 'putObjectTagging' ,
23742365 Action : 'name/cos:PutObjectTagging' ,
23752366 method : 'PUT' ,
23762367 Bucket : params . Bucket ,
@@ -2405,7 +2396,6 @@ function putObjectTagging(params, callback) {
24052396function getObjectTagging ( params , callback ) {
24062397
24072398 submitRequest . call ( this , {
2408- Interface : 'getObjectTagging' ,
24092399 Action : 'name/cos:GetObjectTagging' ,
24102400 method : 'GET' ,
24112401 Key : params . Key ,
@@ -2453,7 +2443,6 @@ function getObjectTagging(params, callback) {
24532443 */
24542444function deleteObjectTagging ( params , callback ) {
24552445 submitRequest . call ( this , {
2456- Interface : 'deleteObjectTagging' ,
24572446 Action : 'name/cos:DeleteObjectTagging' ,
24582447 method : 'DELETE' ,
24592448 Bucket : params . Bucket ,
@@ -2514,7 +2503,6 @@ function selectObjectContent(params, callback) {
25142503 } ) ;
25152504 }
25162505 submitRequest . call ( this , {
2517- Interface : 'selectObjectContent' ,
25182506 Action : 'name/cos:GetObject' ,
25192507 method : 'POST' ,
25202508 Bucket : params . Bucket ,
@@ -2616,7 +2604,10 @@ function multipartInit(params, callback) {
26162604
26172605 // 特殊处理 Cache-Control
26182606 var headers = params . Headers ;
2607+
2608+ // 特殊处理 Cache-Control、Content-Type
26192609 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 || '' ;
26202611
26212612 submitRequest . call ( this , {
26222613 Action : 'name/cos:InitiateMultipartUpload' ,
@@ -2677,12 +2668,9 @@ function multipartUpload(params, callback) {
26772668 onProgress : params . onProgress ,
26782669 body : params . Body || null
26792670 } , function ( err , data ) {
2680- if ( err ) {
2681- return callback ( err ) ;
2682- }
2683- data [ 'headers' ] = data [ 'headers' ] || { } ;
2671+ if ( err ) return callback ( err ) ;
26842672 callback ( null , {
2685- ETag : data [ ' headers' ] [ ' etag'] || '' ,
2673+ ETag : util . attr ( data . headers , ' etag', '' ) ,
26862674 statusCode : data . statusCode ,
26872675 headers : data . headers ,
26882676 } ) ;
@@ -2750,8 +2738,23 @@ function multipartComplete(params, callback) {
27502738 object : params . Key ,
27512739 isLocation : true ,
27522740 } ) ;
2753- var CompleteMultipartUploadResult = data . CompleteMultipartUploadResult || { } ;
2754- 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 , {
27552758 Location : url ,
27562759 statusCode : data . statusCode ,
27572760 headers : data . headers ,
@@ -3353,10 +3356,7 @@ function submitRequest(params, callback) {
33533356 ResourceKey : params . ResourceKey ,
33543357 Scope : params . Scope ,
33553358 } , function ( err , AuthData ) {
3356- if ( err ) {
3357- callback ( err ) ;
3358- return ;
3359- }
3359+ if ( err ) return callback ( err ) ;
33603360 params . AuthData = AuthData ;
33613361 _submitRequest . call ( self , params , function ( err , data ) {
33623362 if ( err &&
@@ -3393,7 +3393,6 @@ function _submitRequest(params, callback) {
33933393 var method = params . method || 'GET' ;
33943394 var url = params . url ;
33953395 var body = params . body ;
3396- var json = params . json ;
33973396 var rawBody = params . rawBody ;
33983397
33993398 // 处理 readStream and body
@@ -3422,7 +3421,6 @@ function _submitRequest(params, callback) {
34223421 headers : params . headers ,
34233422 qs : params . qs ,
34243423 body : body ,
3425- json : json ,
34263424 } ;
34273425
34283426 // 获取签名
0 commit comments