@@ -7281,7 +7281,7 @@ module.exports = function(module) {
72817281/*! exports provided: name, version, description, main, types, scripts, repository, keywords, author, license, bugs, homepage, dependencies, devDependencies, default */
72827282/***/ ( function ( module ) {
72837283
7284- module . exports = JSON . parse ( "{\"name\":\"cos-js-sdk-v5\",\"version\":\"1.8.1\",\"description\":\"JavaScript SDK for [腾讯云对象存储](https://cloud.tencent.com/product/cos)\",\"main\":\"dist/cos-js-sdk-v5.js\",\"types\":\"index.d.ts\",\"scripts\":{\"prettier\":\"prettier --write src demo/demo.js demo/CIDemos/*.js test/test.js server/sts.js lib/request.js index.d.ts\",\"server\":\"node server/sts.js\",\"dev\":\"cross-env NODE_ENV=development webpack -w --mode=development\",\"build\":\"cross-env NODE_ENV=production webpack --mode=production\",\"cos-auth.min.js\":\"uglifyjs ./demo/common/cos-auth.js -o ./demo/common/cos-auth.min.js -c -m\",\"test\":\"jest --runInBand --coverage\"},\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/tencentyun/cos-js-sdk-v5.git\"},\"keywords\":[],\"author\":\"carsonxu\",\"license\":\"ISC\",\"bugs\":{\"url\":\"https://github.com/tencentyun/cos-js-sdk-v5/issues\"},\"homepage\":\"https://github.com/tencentyun/cos-js-sdk-v5#readme\",\"dependencies\":{\"@xmldom/xmldom\":\"^0.8.6\"},\"devDependencies\":{\"@babel/core\":\"7.17.9\",\"@babel/plugin-transform-runtime\":\"7.18.10\",\"@babel/preset-env\":\"7.16.11\",\"babel-loader\":\"8.2.5\",\"body-parser\":\"^1.18.3\",\"cross-env\":\"^5.2.0\",\"express\":\"^4.16.4\",\"jest\":\"^29.3.1\",\"jest-environment-jsdom\":\"^29.3.1\",\"prettier\":\"^3.0.1\",\"qcloud-cos-sts\":\"^3.0.2\",\"request\":\"^2.87.0\",\"terser-webpack-plugin\":\"4.2.3\",\"uglifyjs\":\"^2.4.11\",\"webpack\":\"4.46.0\",\"webpack-cli\":\"4.10.0\"}}" ) ;
7284+ module . exports = JSON . parse ( "{\"name\":\"cos-js-sdk-v5\",\"version\":\"1.8.2\",\"description\":\"JavaScript SDK for [腾讯云对象存储](https://cloud.tencent.com/product/cos)\",\"main\":\"dist/cos-js-sdk-v5.js\",\"types\":\"index.d.ts\",\"scripts\":{\"prettier\":\"prettier --write src demo/demo.js demo/CIDemos/*.js test/test.js server/sts.js lib/request.js index.d.ts\",\"server\":\"node server/sts.js\",\"dev\":\"cross-env NODE_ENV=development webpack -w --mode=development\",\"build\":\"cross-env NODE_ENV=production webpack --mode=production\",\"cos-auth.min.js\":\"uglifyjs ./demo/common/cos-auth.js -o ./demo/common/cos-auth.min.js -c -m\",\"test\":\"jest --runInBand --coverage\"},\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/tencentyun/cos-js-sdk-v5.git\"},\"keywords\":[],\"author\":\"carsonxu\",\"license\":\"ISC\",\"bugs\":{\"url\":\"https://github.com/tencentyun/cos-js-sdk-v5/issues\"},\"homepage\":\"https://github.com/tencentyun/cos-js-sdk-v5#readme\",\"dependencies\":{\"@xmldom/xmldom\":\"^0.8.6\"},\"devDependencies\":{\"@babel/core\":\"7.17.9\",\"@babel/plugin-transform-runtime\":\"7.18.10\",\"@babel/preset-env\":\"7.16.11\",\"babel-loader\":\"8.2.5\",\"body-parser\":\"^1.18.3\",\"cross-env\":\"^5.2.0\",\"express\":\"^4.16.4\",\"jest\":\"^29.3.1\",\"jest-environment-jsdom\":\"^29.3.1\",\"prettier\":\"^3.0.1\",\"qcloud-cos-sts\":\"^3.0.2\",\"request\":\"^2.87.0\",\"terser-webpack-plugin\":\"4.2.3\",\"uglifyjs\":\"^2.4.11\",\"webpack\":\"4.46.0\",\"webpack-cli\":\"4.10.0\"}}" ) ;
72857285
72867286/***/ } ) ,
72877287
@@ -7340,7 +7340,7 @@ function sliceUploadFile(params, callback) {
73407340 var metaHeaders = { } ;
73417341 util . each ( params . Headers , function ( val , k ) {
73427342 var shortKey = k . toLowerCase ( ) ;
7343- if ( shortKey . indexOf ( 'x-cos-meta-' ) === 0 || shortKey === 'pic-operations' ) {
7343+ if ( shortKey . indexOf ( 'x-cos-meta-' ) === 0 || [ 'pic-operations' , 'x-cos-callback' , 'x-cos-callback-var' , 'x-cos-return-body' ] . includes ( shortKey ) ) {
73447344 metaHeaders [ k ] = val ;
73457345 }
73467346 } ) ;
@@ -11556,20 +11556,51 @@ function multipartComplete(params, callback) {
1155611556 isLocation : true
1155711557 } ) ;
1155811558 var res = data . CompleteMultipartUploadResult || { } ;
11559+ // pic-operations 处理
1155911560 if ( res . ProcessResults ) {
11560- if ( res && res . ProcessResults ) {
11561- res . UploadResult = {
11562- OriginalInfo : {
11563- Key : res . Key ,
11564- Location : url ,
11565- ETag : res . ETag ,
11566- ImageInfo : res . ImageInfo
11567- } ,
11568- ProcessResults : res . ProcessResults
11561+ res . UploadResult = {
11562+ OriginalInfo : {
11563+ Key : res . Key ,
11564+ Location : url ,
11565+ ETag : res . ETag ,
11566+ ImageInfo : res . ImageInfo
11567+ } ,
11568+ ProcessResults : res . ProcessResults
11569+ } ;
11570+ delete res . ImageInfo ;
11571+ delete res . ProcessResults ;
11572+ }
11573+ // callback 处理
11574+ if ( res . CallbackResult ) {
11575+ var callbackResult = res . CallbackResult ;
11576+ if ( callbackResult . Status === '200' && callbackResult . CallbackBody ) {
11577+ try {
11578+ res . CallbackBody = JSON . parse ( util . decodeBase64 ( callbackResult . CallbackBody ) ) ;
11579+ } catch ( e ) {
11580+ res . CallbackBody = { } ;
11581+ }
11582+ } else {
11583+ res . CallbackError = callbackResult . Error || { } ;
11584+ }
11585+ delete res . CallbackResult ;
11586+ }
11587+ // returnBody 处理
11588+ if ( res . ReturnBodyResult ) {
11589+ var returnBodyResult = res . ReturnBodyResult ;
11590+ if ( returnBodyResult . Status === '200' && returnBodyResult . ReturnBody ) {
11591+ try {
11592+ res . ReturnBody = JSON . parse ( util . decodeBase64 ( returnBodyResult . ReturnBody ) ) ;
11593+ } catch ( e ) {
11594+ res . ReturnBody = { } ;
11595+ }
11596+ } else {
11597+ res . ReturnError = {
11598+ Code : returnBodyResult . Code ,
11599+ Message : returnBodyResult . Message ,
11600+ Status : returnBodyResult . Status
1156911601 } ;
11570- delete res . ImageInfo ;
11571- delete res . ProcessResults ;
1157211602 }
11603+ delete res . ReturnBodyResult ;
1157311604 }
1157411605 var result = util . extend ( res , {
1157511606 Location : url ,
@@ -12564,6 +12595,29 @@ function _submitRequest(params, callback) {
1256412595 err = util . extend ( err || { } , attrs ) ;
1256512596 callback ( err , null ) ;
1256612597 } else {
12598+ // putObject 返回回调处理
12599+ if ( params . Action === 'name/cos:PutObject' ) {
12600+ var pHeaders = { } ;
12601+ for ( var i in params . headers ) {
12602+ var key = i . toLowerCase ( ) ;
12603+ pHeaders [ key ] = params . headers [ i ] ;
12604+ }
12605+ if ( pHeaders [ 'x-cos-callback' ] ) {
12606+ if ( data . Error ) {
12607+ data . CallbackError = util . clone ( data . Error ) ;
12608+ delete data . Error ;
12609+ } else {
12610+ data . CallbackBody = util . clone ( data ) ;
12611+ }
12612+ } else if ( pHeaders [ 'x-cos-return-body' ] ) {
12613+ if ( data . Error ) {
12614+ data . ReturnError = util . clone ( data . Error ) ;
12615+ delete data . Error ;
12616+ } else {
12617+ data . ReturnBody = util . clone ( data ) ;
12618+ }
12619+ }
12620+ }
1256712621 data = util . extend ( data || { } , attrs ) ;
1256812622 callback ( null , data ) ;
1256912623 }
@@ -14190,7 +14244,10 @@ var formatParams = function formatParams(apiName, params) {
1419014244 'x-cos-server-side-encryption-cos-kms-key-id' : 'SSEKMSKeyId' ,
1419114245 'x-cos-server-side-encryption-context' : 'SSEContext' ,
1419214246 // 上传时图片处理
14193- 'Pic-Operations' : 'PicOperations'
14247+ 'Pic-Operations' : 'PicOperations' ,
14248+ 'x-cos-callback' : 'Callback' ,
14249+ 'x-cos-callback-var' : 'CallbackVar' ,
14250+ 'x-cos-return-body' : 'ReturnBody'
1419414251 } ;
1419514252 util . each ( headerMap , function ( paramKey , headerKey ) {
1419614253 if ( params [ paramKey ] !== undefined ) {
@@ -14460,6 +14517,10 @@ var encodeBase64 = function encodeBase64(str, safe) {
1446014517 }
1446114518 return base64Str ;
1446214519} ;
14520+ var decodeBase64 = function decodeBase64 ( base64Str ) {
14521+ if ( ! base64Str ) return '' ;
14522+ return base64 . decode ( base64Str ) ;
14523+ } ;
1446314524var simplifyPath = function simplifyPath ( path ) {
1446414525 var names = path . split ( '/' ) ;
1446514526 var stack = [ ] ;
@@ -14553,6 +14614,7 @@ var util = {
1455314614 isCIHost : isCIHost ,
1455414615 isIOS_QQ : isIOS && isQQ ,
1455514616 encodeBase64 : encodeBase64 ,
14617+ decodeBase64 : decodeBase64 ,
1455614618 simplifyPath : simplifyPath ,
1455714619 readAsBinaryString : readAsBinaryString ,
1455814620 parseResBody : parseResBody
0 commit comments