File tree Expand file tree Collapse file tree 1 file changed +26
-22
lines changed Expand file tree Collapse file tree 1 file changed +26
-22
lines changed Original file line number Diff line number Diff line change @@ -463,41 +463,45 @@ export default class Cos {
463463 }
464464 }
465465
466- async flushBucketFiles ( bucket : string ) {
467- console . log ( `Start to clear all files in bucket ${ bucket } ` ) ;
468- let detail ;
466+ async getBucketObjects ( bucket : string ) {
469467 try {
470- detail = await this . getBucket ( {
468+ const detail = await this . getBucket ( {
471469 bucket,
472470 } ) ;
471+ const contents = detail . Contents && detail . Contents . length > 0 ? detail . Contents : [ ] ;
472+ const objectKeyList = contents . map ( ( item ) => {
473+ return {
474+ Key : item . Key ,
475+ } ;
476+ } ) ;
477+ return objectKeyList ;
473478 } catch ( err ) {
474479 const e = convertCosError ( err ) ;
475480 if ( e . code === 'NoSuchBucket' ) {
476481 console . log ( `Bucket ${ bucket } not exist` ) ;
477- return ;
482+ return [ ] ;
478483 }
484+ throw err ;
479485 }
486+ }
480487
481- if ( detail ) {
482- if ( detail . Contents && detail . Contents . length > 0 ) {
483- // delete files
484- const objectList = ( detail . Contents || [ ] ) . map ( ( item ) => {
485- return {
486- Key : item . Key ,
487- } ;
488+ async flushBucketFiles ( bucket : string ) {
489+ try {
490+ console . log ( `Start to clear all files in bucket ${ bucket } ` ) ;
491+ let objects = await this . getBucketObjects ( bucket ) ;
492+ // 由于 cos 服务一次只能获取 1000 个 object,所以需要循环每次删除 1000 个 object
493+ while ( objects . length > 0 ) {
494+ await this . cosClient . deleteMultipleObject ( {
495+ Region : this . region ,
496+ Bucket : bucket ,
497+ Objects : objects ,
488498 } ) ;
489499
490- try {
491- await this . cosClient . deleteMultipleObject ( {
492- Region : this . region ,
493- Bucket : bucket ,
494- Objects : objectList ,
495- } ) ;
496- console . log ( `Clear all files in bucket ${ bucket } success` ) ;
497- } catch ( err ) {
498- console . log ( err ) ;
499- }
500+ objects = await this . getBucketObjects ( bucket ) ;
500501 }
502+ console . log ( `Clear all files in bucket ${ bucket } success` ) ;
503+ } catch ( e ) {
504+ console . log ( `Flush bucket files error: ${ e . message } ` ) ;
501505 }
502506 }
503507
You can’t perform that action at this time.
0 commit comments