@@ -6,9 +6,10 @@ const config = require('../config')
6
6
const { getImageMimeType } = require ( '../utils' )
7
7
const logger = require ( '../logger' )
8
8
9
- const AWS = require ( 'aws-sdk' )
10
- const awsConfig = new AWS . Config ( config . s3 )
11
- const s3 = new AWS . S3 ( awsConfig )
9
+ const { S3Client } = require ( '@aws-sdk/client-s3-node/S3Client' )
10
+ const { PutObjectCommand } = require ( '@aws-sdk/client-s3-node/commands/PutObjectCommand' )
11
+
12
+ const s3 = new S3Client ( config . s3 )
12
13
13
14
exports . uploadImage = function ( imagePath , callback ) {
14
15
if ( ! imagePath || typeof imagePath !== 'string' ) {
@@ -32,23 +33,23 @@ exports.uploadImage = function (imagePath, callback) {
32
33
Body : buffer ,
33
34
ACL : 'public-read'
34
35
}
35
-
36
36
const mimeType = getImageMimeType ( imagePath )
37
37
if ( mimeType ) { params . ContentType = mimeType }
38
38
39
- s3 . putObject ( params , function ( err , data ) {
40
- if ( err ) {
41
- callback ( new Error ( err ) , null )
42
- return
43
- }
39
+ const command = new PutObjectCommand ( params )
44
40
41
+ s3 . send ( command ) . then ( data => {
45
42
let s3Endpoint = 's3.amazonaws.com'
46
43
if ( config . s3 . endpoint ) {
47
44
s3Endpoint = config . s3 . endpoint
48
45
} else if ( config . s3 . region && config . s3 . region !== 'us-east-1' ) {
49
46
s3Endpoint = `s3-${ config . s3 . region } .amazonaws.com`
50
47
}
51
48
callback ( null , `https://${ s3Endpoint } /${ config . s3bucket } /${ params . Key } ` )
49
+ } ) . catch ( err => {
50
+ if ( err ) {
51
+ callback ( new Error ( err ) , null )
52
+ }
52
53
} )
53
54
} )
54
55
}
0 commit comments