11const fs = require ( "fs" )
22const path = require ( "path" )
33const mime = require ( "mime-types" )
4- const AWS = require ( "aws-sdk" )
4+ const { S3Client , PutObjectCommand } = require ( "@ aws-sdk/client-s3" ) ;
55
6- const s3 = new AWS . S3 ( )
76const configDefaults = {
7+ region : null ,
88 dir : null ,
99 bucket : null ,
1010 exclude : [ ] ,
@@ -29,7 +29,7 @@ const findFiles = directory => {
2929
3030const getKey = ( file , root ) => path . relative ( root , file )
3131
32- const uploadFile = ( config , file , key ) => new Promise ( ( resolve , reject ) => {
32+ const uploadFile = ( s3 , config , file , key ) => new Promise ( ( resolve , reject ) => {
3333 const { bucket } = config
3434 const stream = fs . createReadStream ( file )
3535 const basename = path . basename ( file )
@@ -41,20 +41,22 @@ const uploadFile = (config, file, key) => new Promise((resolve, reject) => {
4141 }
4242
4343 stream . on ( "error" , reject )
44- s3 . upload ( params , ( err , data ) => {
45- stream . close ( )
46- if ( err ) reject ( err )
47- else resolve ( data )
48- } )
44+ s3 . send ( new PutObjectCommand ( params ) )
45+ . then ( data => resolve ( data ) )
46+ . catch ( err => reject ( err ) )
47+ . finally ( ( ) => stream . close ( ) )
4948} )
5049
5150const upload = argv => {
5251 const config = getConfig ( argv )
53- const { accessKeyId, secretAccessKey, dir, exclude } = config
52+ const { region , accessKeyId, secretAccessKey, dir, exclude } = config
5453
55- AWS . config . update ( {
56- accessKeyId : accessKeyId || "unknown" ,
57- secretAccessKey : secretAccessKey || "unknown" ,
54+ const s3 = new S3Client ( {
55+ region,
56+ credentials : {
57+ accessKeyId : accessKeyId || "unknown" ,
58+ secretAccessKey : secretAccessKey || "unknown" ,
59+ }
5860 } )
5961
6062 const directory = path . resolve ( dir )
@@ -65,8 +67,8 @@ const upload = argv => {
6567
6668 const promises = files . map ( file => {
6769 const key = getKey ( file , directory )
68- return uploadFile ( config , file , key )
69- . then ( data => console . log ( "Uploaded" , data . Location ) )
70+ return uploadFile ( s3 , config , file , key )
71+ . then ( ( ) => console . log ( "Uploaded" , file ) )
7072 } )
7173
7274 return Promise . all ( promises )
0 commit comments