@@ -4,8 +4,7 @@ var minimist = require('minimist');
44var s3urls = require ( 's3urls' ) ;
55var Dyno = require ( '@mapbox/dyno' ) ;
66var crypto = require ( 'crypto' ) ;
7- var AWS = require ( 'aws-sdk' ) ;
8- var s3 = new AWS . S3 ( ) ;
7+ var { S3Client, GetObjectCommand } = require ( '@aws-sdk/client-s3' ) ;
98var assert = require ( 'assert' ) ;
109
1110var args = minimist ( process . argv . slice ( 2 ) ) ;
@@ -34,6 +33,8 @@ if (!table) {
3433var region = table . split ( '/' ) [ 0 ] ;
3534table = table . split ( '/' ) [ 1 ] ;
3635
36+ var s3Client = new S3Client ( { region : region } ) ;
37+
3738var s3url = args . _ [ 1 ] ;
3839
3940if ( ! s3url ) {
@@ -86,30 +87,51 @@ dyno.getItem({ Key: key }, function(err, data) {
8687 if ( err ) throw err ;
8788 var dynamoRecord = data . Item ;
8889
89- s3 . getObject ( s3url , function ( err , data ) {
90- if ( err && err . statusCode !== 404 ) throw err ;
91- var s3data = err ? undefined : Dyno . deserialize ( data . Body . toString ( ) ) ;
92-
93- console . log ( 'DynamoDB record' ) ;
94- console . log ( '--------------' ) ;
95- console . log ( dynamoRecord ) ;
96- console . log ( '' ) ;
97-
98- console . log ( 'Incremental backup record (%s)' , s3url . Key ) ;
99- console . log ( '--------------' ) ;
100- console . log ( s3data ) ;
101- console . log ( '' ) ;
102-
103- try {
104- assert . deepEqual ( s3data , dynamoRecord ) ;
105- console . log ( '----------------------------' ) ;
106- console . log ( '✔ The records are equivalent' ) ;
107- console . log ( '----------------------------' ) ;
108- }
109- catch ( err ) {
110- console . log ( '--------------------------------' ) ;
111- console . log ( '✘ The records are not equivalent' ) ;
112- console . log ( '--------------------------------' ) ;
113- }
114- } ) ;
90+ s3Client . send ( new GetObjectCommand ( s3url ) )
91+ . then ( data => {
92+ var s3data = Dyno . deserialize ( data . Body . toString ( ) ) ;
93+
94+ console . log ( 'DynamoDB record' ) ;
95+ console . log ( '--------------' ) ;
96+ console . log ( dynamoRecord ) ;
97+ console . log ( '' ) ;
98+
99+ console . log ( 'Incremental backup record (%s)' , s3url . Key ) ;
100+ console . log ( '--------------' ) ;
101+ console . log ( s3data ) ;
102+ console . log ( '' ) ;
103+
104+ try {
105+ assert . deepEqual ( s3data , dynamoRecord ) ;
106+ console . log ( '----------------------------' ) ;
107+ console . log ( '✔ The records are equivalent' ) ;
108+ console . log ( '----------------------------' ) ;
109+ }
110+ catch ( err ) {
111+ console . log ( '--------------------------------' ) ;
112+ console . log ( '✘ The records are not equivalent' ) ;
113+ console . log ( '--------------------------------' ) ;
114+ }
115+ } )
116+ . catch ( err => {
117+ if ( err . $metadata && err . $metadata . httpStatusCode === 404 ) {
118+ var s3data = undefined ;
119+
120+ console . log ( 'DynamoDB record' ) ;
121+ console . log ( '--------------' ) ;
122+ console . log ( dynamoRecord ) ;
123+ console . log ( '' ) ;
124+
125+ console . log ( 'Incremental backup record (%s)' , s3url . Key ) ;
126+ console . log ( '--------------' ) ;
127+ console . log ( s3data ) ;
128+ console . log ( '' ) ;
129+
130+ console . log ( '--------------------------------' ) ;
131+ console . log ( '✘ The records are not equivalent' ) ;
132+ console . log ( '--------------------------------' ) ;
133+ } else {
134+ throw err ;
135+ }
136+ } ) ;
115137} ) ;
0 commit comments