@@ -20,7 +20,6 @@ const { S3Client,
2020 HeadBucketCommand,
2121} = require ( '@aws-sdk/client-s3' ) ;
2222const { NodeHttpHandler } = require ( '@smithy/node-http-handler' ) ;
23- const { StandardRetryStrategy } = require ( '@aws-sdk/middleware-retry' ) ;
2423const { Agent : HttpAgent } = require ( 'http' ) ;
2524const { Agent : HttpsAgent } = require ( 'https' ) ;
2625const kms = require ( '../../../lib/kms/wrapper' ) ;
@@ -40,7 +39,6 @@ function getKey(key) {
4039// For Integration use default profile, in cloudserver use vault profile
4140const credsProfile = process . env . S3_END_TO_END === 'true' ? 'default' : 'vault' ;
4241
43- // Create custom agents with specific pooling settings
4442const httpAgent = new HttpAgent ( {
4543 keepAlive : true ,
4644 keepAliveMsecs : 30000 ,
@@ -65,36 +63,21 @@ const s3config = {
6563 httpAgent,
6664 httpsAgent,
6765 } ) ,
68- maxAttempts : 8 ,
69- retryStrategy : new StandardRetryStrategy ( {
70- maxAttempts : 8 ,
71- retryDecider : error =>
72- (
73- error . code === 'ECONNREFUSED' ||
74- error . code === 'ECONNRESET' ||
75- error . name === 'TimeoutError' ||
76- error . message ?. includes ( 'socket hang up' ) ||
77- error . code === 'ThrottlingException' ||
78- error . code === 'RequestTimeout'
79- )
80- ,
81- delayDecider : attempts => Math . min ( 1000 * Math . pow ( 2 , attempts ) , 30000 ) , // Exponential backoff
82- } ) ,
66+ maxAttempts : 3 ,
8367} ;
8468
8569const s3Client = new S3Client ( s3config ) ;
8670
87- // Remove logger middleware if present
8871if ( s3Client . middlewareStack . identify ( ) . includes ( 'loggerMiddleware' ) ) {
8972 s3Client . middlewareStack . remove ( 'loggerMiddleware' ) ;
9073}
9174
9275const bucketUtil = new BucketUtility ( credsProfile ) ;
9376
94- // Wrapper for SDK v3 commands to return promises directly
9577const wrap = exec => exec ( ) ;
9678const s3 = {
9779 createBucket : params => wrap ( ( ) => s3Client . send ( new CreateBucketCommand ( params ) ) ) ,
80+ deleteBucket : params => wrap ( ( ) => s3Client . send ( new DeleteBucketCommand ( params ) ) ) ,
9881 putBucketEncryption : params => wrap ( ( ) => s3Client . send ( new PutBucketEncryptionCommand ( params ) ) ) ,
9982 getBucketEncryption : params => wrap ( ( ) => s3Client . send ( new GetBucketEncryptionCommand ( params ) ) ) ,
10083 putObject : params => wrap ( ( ) => s3Client . send ( new PutObjectCommand ( params ) ) ) ,
@@ -176,7 +159,7 @@ const MD = {
176159
177160async function getBucketSSE ( Bucket ) {
178161 try {
179- const sse = await s3Client . send ( new GetBucketEncryptionCommand ( { Bucket } ) ) ;
162+ const sse = await s3 . getBucketEncryption ( { Bucket } ) ;
180163 return sse . ServerSideEncryptionConfiguration . Rules [ 0 ] . ApplyServerSideEncryptionByDefault ;
181164 } catch ( error ) {
182165 if ( error . name === 'ServerSideEncryptionConfigurationNotFoundError' ) {
@@ -187,10 +170,10 @@ async function getBucketSSE(Bucket) {
187170}
188171
189172async function putEncryptedObject ( Bucket , Key , sseConfig , kmsKeyId , Body ) {
190- return s3Client . send ( new PutObjectCommand ( {
173+ return s3 . putObject ( {
191174 ...putObjParams ( Bucket , Key , sseConfig , kmsKeyId ) ,
192175 Body,
193- } ) ) ;
176+ } ) ;
194177}
195178
196179async function getObjectMDSSE ( Bucket , Key ) {
@@ -221,7 +204,7 @@ const destroyKmsKey = promisify(kms.destroyBucketKey);
221204
222205async function cleanup ( Bucket ) {
223206 await bucketUtil . empty ( Bucket ) ;
224- await s3Client . send ( new DeleteBucketCommand ( { Bucket } ) ) ;
207+ await s3 . deleteBucket ( { Bucket } ) ;
225208}
226209
227210module . exports = {
0 commit comments