@@ -403,60 +403,61 @@ var apiWrapper = function (apiName, apiFn) {
403403 callback && callback ( formatResult ( err ) , formatResult ( data ) ) ;
404404 } ;
405405
406- if ( apiName !== 'getService' && apiName !== 'abortUploadTask' ) {
407- // 判断参数是否完整
408- var missingResult ;
409- if ( missingResult = hasMissingParams ( apiName , params ) ) {
410- _callback ( { error : 'missing param ' + missingResult } ) ;
411- return ;
412- }
413- // 判断 region 格式
414- if ( params . Region ) {
415- if ( params . Region . indexOf ( 'cos.' ) > - 1 ) {
416- _callback ( { error : 'param Region should not be start with "cos."' } ) ;
417- return ;
418- } else if ( ! / ^ ( [ a - z \d - ] + ) $ / . test ( params . Region ) ) {
419- _callback ( { error : 'Region format error.' } ) ;
420- return ;
406+ var checkParams = function ( ) {
407+ if ( apiName !== 'getService' && apiName !== 'abortUploadTask' ) {
408+ // 判断参数是否完整
409+ var missingResult = hasMissingParams ( apiName , params )
410+ if ( missingResult ) {
411+ return 'missing param ' + missingResult ;
421412 }
422413 // 判断 region 格式
423- if ( ! self . options . CompatibilityMode && params . Region . indexOf ( '-' ) === - 1 && params . Region !== 'yfb' && params . Region !== 'default' ) {
424- console . warn ( 'warning: param Region format error, find help here: https://cloud.tencent.com/document/product/436/6224' ) ;
414+ if ( params . Region ) {
415+ if ( params . Region . indexOf ( 'cos.' ) > - 1 ) {
416+ return 'param Region should not be start with "cos."' ;
417+ } else if ( ! / ^ ( [ a - z \d - ] + ) $ / . test ( params . Region ) ) {
418+ return 'Region format error.' ;
419+ }
420+ // 判断 region 格式
421+ if ( ! self . options . CompatibilityMode && params . Region . indexOf ( '-' ) === - 1 && params . Region !== 'yfb' && params . Region !== 'default' ) {
422+ console . warn ( 'warning: param Region format error, find help here: https://cloud.tencent.com/document/product/436/6224' ) ;
423+ }
425424 }
426- }
427- // 兼容不带 AppId 的 Bucket
428- if ( params . Bucket ) {
429- if ( ! / ^ ( [ a - z \d - ] + ) - ( \d + ) $ / . test ( params . Bucket ) ) {
425+ // 兼容不带 AppId 的 Bucket
426+ if ( params . Bucket ) {
427+ if ( ! / ^ ( [ a - z \d - ] + ) - ( \d + ) $ / . test ( params . Bucket ) ) {
428+ if ( params . AppId ) {
429+ params . Bucket = params . Bucket + '-' + params . AppId ;
430+ } else if ( self . options . AppId ) {
431+ params . Bucket = params . Bucket + '-' + self . options . AppId ;
432+ } else {
433+ return 'Bucket should format as "test-1250000000".' ;
434+ }
435+ }
430436 if ( params . AppId ) {
431- params . Bucket = params . Bucket + '-' + params . AppId ;
432- } else if ( self . options . AppId ) {
433- params . Bucket = params . Bucket + '-' + self . options . AppId ;
434- } else {
435- _callback ( { error : 'Bucket should format as "test-1250000000".' } ) ;
436- return ;
437+ console . warn ( 'warning: AppId has been deprecated, Please put it at the end of parameter Bucket(E.g Bucket:"test-1250000000" ).' ) ;
438+ delete params . AppId ;
437439 }
438440 }
439- if ( params . AppId ) {
440- console . warn ( 'warning: AppId has been deprecated, Please put it at the end of parameter Bucket(E.g Bucket:"test-1250000000" ).' ) ;
441- delete params . AppId ;
441+ // 如果 Key 是 / 开头,强制去掉第一个 /
442+ if ( ! self . options . UseRawKey && params . Key && params . Key . substr ( 0 , 1 ) === '/' ) {
443+ params . Key = params . Key . substr ( 1 ) ;
442444 }
443445 }
444- // 如果 Key 是 / 开头,强制去掉第一个 /
445- if ( ! self . options . UseRawKey && params . Key && params . Key . substr ( 0 , 1 ) === '/' ) {
446- params . Key = params . Key . substr ( 1 ) ;
447- }
448- }
446+ } ;
449447
448+ var errMsg = checkParams ( ) ;
450449 var isSync = apiName === 'getAuth' || apiName === 'getV4Auth' || apiName === 'getObjectUrl' ;
451450 var Promise = global . Promise ;
452451 if ( ! isSync && Promise && ! callback ) {
453452 return new Promise ( function ( resolve , reject ) {
454453 callback = function ( err , data ) {
455454 err ? reject ( err ) : resolve ( data ) ;
456455 } ;
456+ if ( errMsg ) return _callback ( { error : errMsg } ) ;
457457 apiFn . call ( self , params , _callback ) ;
458458 } ) ;
459459 } else {
460+ if ( errMsg ) return _callback ( { error : errMsg } ) ;
460461 var res = apiFn . call ( self , params , _callback ) ;
461462 if ( isSync ) return res ;
462463 }
0 commit comments