11const async = require ( 'async' ) ;
22const assert = require ( 'assert' ) ;
3- const { S3 } = require ( 'aws-sdk' ) ;
3+ const { S3Client,
4+ ListObjectVersionsCommand,
5+ GetObjectCommand,
6+ DeleteObjectsCommand,
7+ PutBucketVersioningCommand,
8+ PutObjectCommand,
9+ DeleteObjectCommand } = require ( '@aws-sdk/client-s3' ) ;
410
511const getConfig = require ( '../../test/support/config' ) ;
6- const config = getConfig ( 'default' , { signatureVersion : 'v4' } ) ;
7- const s3 = new S3 ( config ) ;
12+ const config = getConfig ( 'default' ) ;
13+ const s3Client = new S3Client ( config ) ;
814
915const versioningEnabled = { Status : 'Enabled' } ;
1016const versioningSuspended = { Status : 'Suspended' } ;
@@ -19,28 +25,25 @@ function _deleteVersionList(versionList, bucket, callback) {
1925 Key : version . Key , VersionId : version . VersionId } ) ;
2026 } ) ;
2127
22- return s3 . deleteObjects ( params , callback ) ;
28+ return s3Client . send ( new DeleteObjectsCommand ( params ) ) . then ( ( ) => callback ( ) ) . catch ( err => callback ( err ) ) ;
2329}
2430
2531function checkOneVersion ( s3 , bucket , versionId , callback ) {
26- return s3 . listObjectVersions ( { Bucket : bucket } ,
27- ( err , data ) => {
28- if ( err ) {
29- callback ( err ) ;
30- }
32+ return s3Client . send ( new ListObjectVersionsCommand ( { Bucket : bucket } ) ) . then ( data => {
3133 assert . strictEqual ( data . Versions . length , 1 ) ;
3234 if ( versionId ) {
3335 assert . strictEqual ( data . Versions [ 0 ] . VersionId , versionId ) ;
3436 }
3537 assert . strictEqual ( data . DeleteMarkers . length , 0 ) ;
3638 callback ( ) ;
37- } ) ;
39+ } ) . catch ( err => callback ( err ) ) ;
3840}
3941
4042function removeAllVersions ( params , callback ) {
4143 const bucket = params . Bucket ;
4244 async . waterfall ( [
43- cb => s3 . listObjectVersions ( params , cb ) ,
45+ cb => s3Client . send ( new ListObjectVersionsCommand ( params ) ) . then ( data =>
46+ cb ( null , data ) ) . catch ( err => cb ( err ) ) ,
4447 ( data , cb ) => _deleteVersionList ( data . DeleteMarkers , bucket ,
4548 err => cb ( err , data ) ) ,
4649 ( data , cb ) => _deleteVersionList ( data . Versions , bucket ,
@@ -60,25 +63,26 @@ function removeAllVersions(params, callback) {
6063}
6164
6265function suspendVersioning ( bucket , callback ) {
63- s3 . putBucketVersioning ( {
66+ s3Client . send ( new PutBucketVersioningCommand ( {
6467 Bucket : bucket ,
6568 VersioningConfiguration : versioningSuspended ,
66- } , callback ) ;
69+ } ) ) . then ( ( ) => callback ( ) ) . catch ( err => callback ( err ) ) ;
6770}
6871
6972function enableVersioning ( bucket , callback ) {
70- s3 . putBucketVersioning ( {
73+ s3Client . send ( new PutBucketVersioningCommand ( {
7174 Bucket : bucket ,
7275 VersioningConfiguration : versioningEnabled ,
73- } , callback ) ;
76+ } ) ) . then ( ( ) => callback ( ) ) . catch ( err => callback ( err ) ) ;
7477}
7578
7679function enableVersioningThenPutObject ( bucket , object , callback ) {
7780 enableVersioning ( bucket , err => {
7881 if ( err ) {
7982 callback ( err ) ;
8083 }
81- s3 . putObject ( { Bucket : bucket , Key : object } , callback ) ;
84+ s3Client . send ( new PutObjectCommand ( { Bucket : bucket , Key : object } ) ) . then ( ( ) =>
85+ callback ( ) ) . catch ( err => callback ( err ) ) ;
8286 } ) ;
8387}
8488
@@ -102,33 +106,35 @@ function enableVersioningThenPutObject(bucket, object, callback) {
102106function createDualNullVersion ( s3 , bucketName , keyName , cb ) {
103107 async . waterfall ( [
104108 // put null version
105- next => s3 . putObject ( { Bucket : bucketName , Key : keyName } ,
106- err => next ( err ) ) ,
109+ next => s3Client . send ( new PutObjectCommand ( { Bucket : bucketName , Key : keyName , Body : null } ) ) . then ( ( ) =>
110+ next ( ) ) . catch ( err => next ( err ) ) ,
107111 next => enableVersioning ( bucketName , err => next ( err ) ) ,
108112 // should store null version as separate version before
109113 // putting new version
110- next => s3 . putObject ( { Bucket : bucketName , Key : keyName } ,
111- ( err , data ) => {
112- assert . strictEqual ( err , null ,
113- 'Unexpected err putting new version' ) ;
114- assert ( data . VersionId ) ;
115- next ( null , data . VersionId ) ;
116- } ) ,
114+ next => s3Client . send ( new PutObjectCommand ( { Bucket : bucketName , Key : keyName } ) ) . then ( data => {
115+ assert ( data . VersionId ) ;
116+ next ( null , data . VersionId ) ;
117+ } ) . catch ( err => {
118+ assert . strictEqual ( err , null ,
119+ 'Unexpected err putting new version' ) ;
120+ next ( err ) ;
121+ } ) ,
117122 // delete version we just created, master version should be updated
118123 // with value of next most recent version: null version previously put
119- ( versionId , next ) => s3 . deleteObject ( {
124+ ( versionId , next ) => s3Client . send ( new DeleteObjectCommand ( {
120125 Bucket : bucketName ,
121126 Key : keyName ,
122127 VersionId : versionId ,
123- } , err => next ( err ) ) ,
128+ } ) ) . then ( ( ) => next ( ) ) . catch ( err => next ( err ) ) ,
124129 // getting object should return null version now
125- next => s3 . getObject ( { Bucket : bucketName , Key : keyName } ,
126- ( err , data ) => {
127- assert . strictEqual ( err , null ,
128- 'Unexpected err getting latest version' ) ;
129- assert . strictEqual ( data . VersionId , 'null' ) ;
130- next ( ) ;
131- } ) ,
130+ next => s3Client . send ( new GetObjectCommand ( { Bucket : bucketName , Key : keyName } ) ) . then ( data => {
131+ assert . strictEqual ( data . VersionId , 'null' ) ;
132+ next ( ) ;
133+ } ) . catch ( err => {
134+ assert . strictEqual ( err , null ,
135+ 'Unexpected err getting latest version' ) ;
136+ next ( err ) ;
137+ } ) ,
132138 ] , err => cb ( err ) ) ;
133139}
134140
0 commit comments