Skip to content

Commit f6fcdc6

Browse files
migrate sdk from v2 to v3 for listFailedObject
ISSUE : S3UTILS-202
1 parent 603e613 commit f6fcdc6

File tree

1 file changed

+33
-26
lines changed

1 file changed

+33
-26
lines changed

listFailedObjects.js

Lines changed: 33 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const async = require('async');
2-
const AWS = require('aws-sdk');
3-
const { http } = require('httpagent');
2+
const { S3Client, ListObjectVersionsCommand, HeadObjectCommand } = require('@aws-sdk/client-s3');
3+
const { NodeHttpHandler } = require('@aws-sdk/node-http-handler');
4+
const http = require('http');
45

56
const { Logger } = require('werelogs');
67

@@ -32,31 +33,35 @@ if (!SECRET_KEY) {
3233
process.exit(1);
3334
}
3435

35-
const s3 = new AWS.S3({
36-
accessKeyId: ACCESS_KEY,
37-
secretAccessKey: SECRET_KEY,
36+
const s3 = new S3Client({
3837
region: 'us-east-1',
39-
sslEnabled: false,
40-
endpoint: ENDPOINT,
41-
s3ForcePathStyle: true,
42-
apiVersions: { s3: '2006-03-01' },
43-
signatureVersion: 'v4',
44-
signatureCache: false,
45-
httpOptions: {
46-
maxRetries: 0,
47-
timeout: 0,
48-
agent: new http.Agent({ keepAlive: true }),
38+
credentials: {
39+
accessKeyId: ACCESS_KEY,
40+
secretAccessKey: SECRET_KEY,
4941
},
42+
endpoint: ENDPOINT,
43+
forcePathStyle: true,
44+
tls: false,
45+
requestHandler: new NodeHttpHandler({
46+
httpAgent: new http.Agent({ keepAlive: true }),
47+
requestTimeout: 0,
48+
}),
5049
});
5150

5251
// list object versions
5352
function _listObjectVersions(bucket, VersionIdMarker, KeyMarker, cb) {
54-
s3.listObjectVersions({
53+
s3.send(new ListObjectVersionsCommand({
5554
Bucket: bucket,
5655
MaxKeys: LISTING_LIMIT,
5756
VersionIdMarker,
5857
KeyMarker,
59-
}, cb);
58+
}))
59+
.then(data => {
60+
cb(null, data);
61+
})
62+
.catch(err => {
63+
cb(err);
64+
});
6065
}
6166

6267
// return object with key and version_id
@@ -82,21 +87,23 @@ function listBucket(bucket, cb) {
8287
log.error('error occured while listing', { error: err, bucketName });
8388
return done(err);
8489
}
85-
const keys = _getKeys(data.Versions);
90+
const keys = _getKeys(data.Versions || []);
8691
return async.mapLimit(keys, 10, (k, next) => {
8792
const { Key, VersionId } = k;
88-
s3.headObject(
89-
{ Bucket: bucketName, Key, VersionId },
90-
(err, res) => {
91-
if (err) {
92-
return next(err);
93-
}
93+
s3.send(new HeadObjectCommand({
94+
Bucket: bucketName,
95+
Key,
96+
VersionId,
97+
}))
98+
.then(res => {
9499
if (res.ReplicationStatus === 'FAILED') {
95100
console.log({ Key, ...res });
96101
}
97102
return next();
98-
},
99-
);
103+
})
104+
.catch(err => {
105+
return next(err);
106+
});
100107
}, err => {
101108
if (err) {
102109
return done(err);

0 commit comments

Comments
 (0)