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 {
463
463
}
464
464
}
465
465
466
- async flushBucketFiles ( bucket : string ) {
467
- console . log ( `Start to clear all files in bucket ${ bucket } ` ) ;
468
- let detail ;
466
+ async getBucketObjects ( bucket : string ) {
469
467
try {
470
- detail = await this . getBucket ( {
468
+ const detail = await this . getBucket ( {
471
469
bucket,
472
470
} ) ;
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 ;
473
478
} catch ( err ) {
474
479
const e = convertCosError ( err ) ;
475
480
if ( e . code === 'NoSuchBucket' ) {
476
481
console . log ( `Bucket ${ bucket } not exist` ) ;
477
- return ;
482
+ return [ ] ;
478
483
}
484
+ throw err ;
479
485
}
486
+ }
480
487
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 ,
488
498
} ) ;
489
499
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 ) ;
500
501
}
502
+ console . log ( `Clear all files in bucket ${ bucket } success` ) ;
503
+ } catch ( e ) {
504
+ console . log ( `Flush bucket files error: ${ e . message } ` ) ;
501
505
}
502
506
}
503
507
You can’t perform that action at this time.
0 commit comments