@@ -7281,7 +7281,7 @@ module.exports = function(module) {
7281
7281
/*! exports provided: name, version, description, main, types, scripts, repository, keywords, author, license, bugs, homepage, dependencies, devDependencies, default */
7282
7282
/***/ ( function ( module ) {
7283
7283
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\"}}" ) ;
7285
7285
7286
7286
/***/ } ) ,
7287
7287
@@ -7340,7 +7340,7 @@ function sliceUploadFile(params, callback) {
7340
7340
var metaHeaders = { } ;
7341
7341
util . each ( params . Headers , function ( val , k ) {
7342
7342
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 ) ) {
7344
7344
metaHeaders [ k ] = val ;
7345
7345
}
7346
7346
} ) ;
@@ -11556,20 +11556,51 @@ function multipartComplete(params, callback) {
11556
11556
isLocation : true
11557
11557
} ) ;
11558
11558
var res = data . CompleteMultipartUploadResult || { } ;
11559
+ // pic-operations 处理
11559
11560
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
11569
11601
} ;
11570
- delete res . ImageInfo ;
11571
- delete res . ProcessResults ;
11572
11602
}
11603
+ delete res . ReturnBodyResult ;
11573
11604
}
11574
11605
var result = util . extend ( res , {
11575
11606
Location : url ,
@@ -12564,6 +12595,29 @@ function _submitRequest(params, callback) {
12564
12595
err = util . extend ( err || { } , attrs ) ;
12565
12596
callback ( err , null ) ;
12566
12597
} 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
+ }
12567
12621
data = util . extend ( data || { } , attrs ) ;
12568
12622
callback ( null , data ) ;
12569
12623
}
@@ -14190,7 +14244,10 @@ var formatParams = function formatParams(apiName, params) {
14190
14244
'x-cos-server-side-encryption-cos-kms-key-id' : 'SSEKMSKeyId' ,
14191
14245
'x-cos-server-side-encryption-context' : 'SSEContext' ,
14192
14246
// 上传时图片处理
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'
14194
14251
} ;
14195
14252
util . each ( headerMap , function ( paramKey , headerKey ) {
14196
14253
if ( params [ paramKey ] !== undefined ) {
@@ -14460,6 +14517,10 @@ var encodeBase64 = function encodeBase64(str, safe) {
14460
14517
}
14461
14518
return base64Str ;
14462
14519
} ;
14520
+ var decodeBase64 = function decodeBase64 ( base64Str ) {
14521
+ if ( ! base64Str ) return '' ;
14522
+ return base64 . decode ( base64Str ) ;
14523
+ } ;
14463
14524
var simplifyPath = function simplifyPath ( path ) {
14464
14525
var names = path . split ( '/' ) ;
14465
14526
var stack = [ ] ;
@@ -14553,6 +14614,7 @@ var util = {
14553
14614
isCIHost : isCIHost ,
14554
14615
isIOS_QQ : isIOS && isQQ ,
14555
14616
encodeBase64 : encodeBase64 ,
14617
+ decodeBase64 : decodeBase64 ,
14556
14618
simplifyPath : simplifyPath ,
14557
14619
readAsBinaryString : readAsBinaryString ,
14558
14620
parseResBody : parseResBody
0 commit comments