@@ -45,10 +45,7 @@ function createBucket(bucket, locked, cb) {
45
45
}
46
46
return s3Client . send ( new CreateBucketCommand ( config ) )
47
47
. then ( data => cb ( null , data ) )
48
- . catch ( err => {
49
- assert . ifError ( err ) ;
50
- cb ( err ) ;
51
- } ) ;
48
+ . catch ( cb ) ;
52
49
}
53
50
54
51
function configureBucketVersioning ( bucket , cb ) {
@@ -59,10 +56,7 @@ function configureBucketVersioning(bucket, cb) {
59
56
} ,
60
57
} ) )
61
58
. then ( data => cb ( null , data ) )
62
- . catch ( err => {
63
- assert . ifError ( err ) ;
64
- cb ( err ) ;
65
- } ) ;
59
+ . catch ( err => cb ( err ) ) ;
66
60
}
67
61
68
62
function putObjectLockConfiguration ( bucket , cb ) {
@@ -79,19 +73,13 @@ function putObjectLockConfiguration(bucket, cb) {
79
73
} ,
80
74
} ) )
81
75
. then ( data => cb ( null , data ) )
82
- . catch ( err => {
83
- assert . ifError ( err ) ;
84
- cb ( err ) ;
85
- } ) ;
76
+ . catch ( err => cb ( err ) ) ;
86
77
}
87
78
88
79
function deleteBucket ( bucket , cb ) {
89
80
return s3Client . send ( new DeleteBucketCommand ( { Bucket : bucket } ) )
90
81
. then ( data => cb ( null , data ) )
91
- . catch ( err => {
92
- assert . ifError ( err ) ;
93
- cb ( err ) ;
94
- } ) ;
82
+ . catch ( err => cb ( err ) ) ;
95
83
}
96
84
97
85
function putObject ( bucket , key , size , cb ) {
@@ -106,9 +94,7 @@ function putObject(bucket, key, size, cb) {
106
94
}
107
95
return cb ( null , data ) ;
108
96
} )
109
- . catch ( err => {
110
- cb ( err ) ;
111
- } ) ;
97
+ . catch ( cb ) ;
112
98
}
113
99
114
100
function putObjectWithCustomHeader ( bucket , key , size , vID , cb ) {
@@ -151,9 +137,7 @@ function copyObject(bucket, key, sourceSize, cb) {
151
137
}
152
138
return cb ( null , data ) ;
153
139
} )
154
- . catch ( err => {
155
- cb ( err ) ;
156
- } ) ;
140
+ . catch ( cb ) ;
157
141
}
158
142
159
143
function deleteObject ( bucket , key , size , cb ) {
@@ -167,9 +151,7 @@ function deleteObject(bucket, key, size, cb) {
167
151
}
168
152
return cb ( ) ;
169
153
} )
170
- . catch ( err => {
171
- cb ( err ) ;
172
- } ) ;
154
+ . catch ( cb ) ;
173
155
}
174
156
175
157
function deleteVersionID ( bucket , key , versionId , size , cb ) {
@@ -184,9 +166,7 @@ function deleteVersionID(bucket, key, versionId, size, cb) {
184
166
}
185
167
return cb ( null , data ) ;
186
168
} )
187
- . catch ( err => {
188
- cb ( err ) ;
189
- } ) ;
169
+ . catch ( cb ) ;
190
170
}
191
171
192
172
function objectMPU ( bucket , key , parts , partSize , callback ) {
@@ -241,7 +221,7 @@ function objectMPU(bucket, key, parts, partSize, callback) {
241
221
} ,
242
222
] , err => {
243
223
if ( ! s3Config . isQuotaInflightEnabled ( ) ) {
244
- mockScuba . incrementBytesForBucket ( bucket , - ( parts * partSize ) ) ;
224
+ mockScuba . incrementBytesForBucket ( bucket , parts * partSize ) ;
245
225
}
246
226
return callback ( err , uploadId ) ;
247
227
} ) ;
@@ -259,9 +239,7 @@ function abortMPU(bucket, key, uploadId, size, callback) {
259
239
}
260
240
return callback ( null , data ) ;
261
241
} )
262
- . catch ( err => {
263
- callback ( err ) ;
264
- } ) ;
242
+ . catch ( err => callback ( err ) ) ;
265
243
}
266
244
267
245
function uploadPartCopy ( bucket , key , partNumber , partSize , sleepDuration , keyToCopy , callback ) {
@@ -352,9 +330,7 @@ function restoreObject(bucket, key, size, callback) {
352
330
}
353
331
return callback ( null , data ) ;
354
332
} )
355
- . catch ( err => {
356
- callback ( err ) ;
357
- } ) ;
333
+ . catch ( callback ) ;
358
334
}
359
335
360
336
function multiObjectDelete ( bucket , keys , size , callback ) {
@@ -375,7 +351,6 @@ function multiObjectDelete(bucket, keys, size, callback) {
375
351
callback ( null , data ) ;
376
352
} )
377
353
. catch ( err => {
378
-
379
354
if ( ! s3Config . isQuotaInflightEnabled ( ) ) {
380
355
mockScuba . incrementBytesForBucket ( bucket , size ) ;
381
356
}
@@ -409,38 +384,7 @@ function multiObjectDelete(bucket, keys, size, callback) {
409
384
// Force the client to not add automatic headers
410
385
useGlobalEndpoint : false ,
411
386
} ) ;
412
-
413
- // Add middleware to strip ALL checksum headers
414
- s3Client . middlewareStack . add (
415
- next => async args => {
416
- if ( args . request && args . request . headers ) {
417
- // Remove all AWS checksum headers
418
- // eslint-disable-next-line no-param-reassign
419
- delete args . request . headers [ 'x-amz-checksum-crc32' ] ;
420
- // eslint-disable-next-line no-param-reassign
421
- delete args . request . headers [ 'x-amz-checksum-crc32c' ] ;
422
- // eslint-disable-next-line no-param-reassign
423
- delete args . request . headers [ 'x-amz-checksum-sha1' ] ;
424
- // eslint-disable-next-line no-param-reassign
425
- delete args . request . headers [ 'x-amz-checksum-sha256' ] ;
426
- // eslint-disable-next-line no-param-reassign
427
- delete args . request . headers [ 'x-amz-sdk-checksum-algorithm' ] ;
428
- // eslint-disable-next-line no-param-reassign
429
- delete args . request . headers [ 'content-md5' ] ;
430
-
431
- // Log what headers we're sending
432
- // eslint-disable-next-line no-console
433
- console . log ( 'Request headers after stripping:' , Object . keys ( args . request . headers ) ) ;
434
- }
435
- return next ( args ) ;
436
- } ,
437
- {
438
- step : 'build' ,
439
- name : 'stripAllChecksumHeaders' ,
440
- priority : 'high'
441
- }
442
- ) ;
443
-
387
+
444
388
scuba . start ( ) ;
445
389
metadata . setup ( err => wait ( 2000 , ( ) => done ( err ) ) ) ;
446
390
} ) ;
@@ -463,8 +407,12 @@ function multiObjectDelete(bucket, keys, size, callback) {
463
407
JSON . stringify ( quota ) , config ) . then ( ( ) => next ( ) ) . catch ( err => next ( err ) ) ,
464
408
next => {
465
409
putObject ( bucket , key , size , err => {
466
- assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
467
- return next ( ) ;
410
+ try {
411
+ assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
412
+ return next ( ) ;
413
+ } catch ( assertError ) {
414
+ return next ( assertError ) ;
415
+ }
468
416
} ) ;
469
417
} ,
470
418
next => deleteBucket ( bucket , next ) ,
@@ -488,8 +436,12 @@ function multiObjectDelete(bucket, keys, size, callback) {
488
436
} ) ,
489
437
next => wait ( inflightFlushFrequencyMS * 2 , next ) ,
490
438
next => copyObject ( bucket , key , size , err => {
491
- assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
492
- return next ( ) ;
439
+ try {
440
+ assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
441
+ return next ( ) ;
442
+ } catch ( assertError ) {
443
+ return next ( assertError ) ;
444
+ }
493
445
} ) ,
494
446
next => deleteVersionID ( bucket , key , vID , size , next ) ,
495
447
next => deleteBucket ( bucket , next ) ,
@@ -507,8 +459,12 @@ function multiObjectDelete(bucket, keys, size, callback) {
507
459
next => putObject ( bucket , key , size , next ) ,
508
460
next => wait ( inflightFlushFrequencyMS * 2 , next ) ,
509
461
next => copyObject ( bucket , key , size , err => {
510
- assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
511
- return next ( ) ;
462
+ try {
463
+ assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
464
+ return next ( ) ;
465
+ } catch ( assertError ) {
466
+ return next ( assertError ) ;
467
+ }
512
468
} ) ,
513
469
next => deleteObject ( bucket , key , size , next ) ,
514
470
next => deleteBucket ( bucket , next ) ,
@@ -527,8 +483,12 @@ function multiObjectDelete(bucket, keys, size, callback) {
527
483
JSON . stringify ( quota ) , config ) . then ( ( ) => next ( ) ) . catch ( err => next ( err ) ) ,
528
484
next => objectMPU ( bucket , key , parts , partSize , ( err , _uploadId ) => {
529
485
uploadId = _uploadId ;
530
- assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
531
- return next ( ) ;
486
+ try {
487
+ assert . strictEqual ( err . name , 'QuotaExceeded' ) ;
488
+ return next ( ) ;
489
+ } catch ( assertError ) {
490
+ return next ( assertError ) ;
491
+ }
532
492
} ) ,
533
493
next => abortMPU ( bucket , key , uploadId , 0 , next ) ,
534
494
next => wait ( inflightFlushFrequencyMS * 2 , next ) ,
@@ -595,8 +555,12 @@ function multiObjectDelete(bucket, keys, size, callback) {
595
555
next => uploadPartCopy ( bucket , key , parts , partSize , inflightFlushFrequencyMS * 2 , keyToCopy ,
596
556
( err , _uploadId ) => {
597
557
uploadId = _uploadId ;
598
- assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
599
- return next ( ) ;
558
+ try {
559
+ assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
560
+ return next ( ) ;
561
+ } catch ( assertError ) {
562
+ return next ( assertError ) ;
563
+ }
600
564
} ) ,
601
565
next => abortMPU ( bucket , key , uploadId , parts * partSize , next ) ,
602
566
next => deleteObject ( bucket , keyToCopy , partSize , next ) ,
@@ -624,8 +588,12 @@ function multiObjectDelete(bucket, keys, size, callback) {
624
588
} , next ) ,
625
589
next => wait ( inflightFlushFrequencyMS * 2 , next ) ,
626
590
next => restoreObject ( bucket , key , size , err => {
627
- assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
628
- return next ( ) ;
591
+ try {
592
+ assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
593
+ return next ( ) ;
594
+ } catch ( assertError ) {
595
+ return next ( assertError ) ;
596
+ }
629
597
} ) ,
630
598
next => deleteVersionID ( bucket , key , vID , size , next ) ,
631
599
next => deleteBucket ( bucket , next ) ,
@@ -687,8 +655,12 @@ function multiObjectDelete(bucket, keys, size, callback) {
687
655
} ) ,
688
656
next => wait ( inflightFlushFrequencyMS * 2 , next ) ,
689
657
next => putObject ( bucket , `${ key } 3` , size , err => {
690
- assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
691
- return next ( ) ;
658
+ try {
659
+ assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
660
+ return next ( ) ;
661
+ } catch ( assertError ) {
662
+ return next ( assertError ) ;
663
+ }
692
664
} ) ,
693
665
next => wait ( inflightFlushFrequencyMS * 2 , next ) ,
694
666
next => {
@@ -739,8 +711,12 @@ function multiObjectDelete(bucket, keys, size, callback) {
739
711
// Here we have 0 inflight but the stored bytes are 4000 (equal to the quota)
740
712
// Should reject new write with QuotaExceeded (4000 + 400)
741
713
next => putObject ( bucket , `${ key } 3` , size , err => {
742
- assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
743
- return next ( ) ;
714
+ try {
715
+ assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
716
+ return next ( ) ;
717
+ } catch ( assertError ) {
718
+ return next ( assertError ) ;
719
+ }
744
720
} ) ,
745
721
next => wait ( inflightFlushFrequencyMS * 2 , next ) ,
746
722
// Should still have 0 as inflight
@@ -797,9 +773,7 @@ function multiObjectDelete(bucket, keys, size, callback) {
797
773
const key = 'quota-test-object' ;
798
774
const size = 400 ;
799
775
return async . series ( [
800
- next => {
801
- createBucket ( bucket , false , next ) ;
802
- } ,
776
+ next => createBucket ( bucket , false , next ) ,
803
777
next => sendRequest ( putQuotaVerb , '127.0.0.1:8000' , `/${ bucket } /?quota=true` ,
804
778
JSON . stringify ( quota ) , config ) . then ( ( ) => next ( ) ) . catch ( err => next ( err ) ) ,
805
779
next => {
@@ -856,8 +830,12 @@ function multiObjectDelete(bucket, keys, size, callback) {
856
830
return next ( ) ;
857
831
} ,
858
832
next => putObject ( bucket , `${ key } 3` , size , err => {
859
- assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
860
- return next ( ) ;
833
+ try {
834
+ assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
835
+ return next ( ) ;
836
+ } catch ( assertError ) {
837
+ return next ( assertError ) ;
838
+ }
861
839
} ) ,
862
840
next => wait ( inflightFlushFrequencyMS * 2 , next ) ,
863
841
next => {
@@ -899,8 +877,12 @@ function multiObjectDelete(bucket, keys, size, callback) {
899
877
return next ( ) ;
900
878
} ,
901
879
next => deleteVersionID ( bucket , key , vID , size , err => {
902
- assert . strictEqual ( err . Code , 'AccessDenied' ) ;
903
- next ( ) ;
880
+ try {
881
+ assert . strictEqual ( err . Code , 'AccessDenied' ) ;
882
+ next ( ) ;
883
+ } catch ( assertError ) {
884
+ next ( assertError ) ;
885
+ }
904
886
} ) ,
905
887
next => wait ( inflightFlushFrequencyMS * 2 , next ) ,
906
888
next => {
@@ -976,8 +958,12 @@ function multiObjectDelete(bucket, keys, size, callback) {
976
958
} , next ) ,
977
959
// Put an object, the quota should be exceeded
978
960
next => putObject ( bucket , `${ key } -2` , size , err => {
979
- assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
980
- return next ( ) ;
961
+ try {
962
+ assert . strictEqual ( err . Code , 'QuotaExceeded' ) ;
963
+ return next ( ) ;
964
+ } catch ( assertError ) {
965
+ return next ( assertError ) ;
966
+ }
981
967
} ) ,
982
968
// Simulate the real restore
983
969
next => putObjectWithCustomHeader ( bucket , key , size , vID , err => {
0 commit comments