Я понимаю, что вы пытаетесь сделать здесь, но это не правильный способ сделать это.
function getS3Objects(bucket,key){
return s3.getObject({Bucket:bucket,Key:key,ResponseContentType:'application/json'})
.promise().then(file=>{return file})
.catch(error =>{return error});
}`
В приведенной выше части все еще будет возвращаться объект обещания, а это значит, что вам нужно с ним справитьсясоответственно.Вместо const response = getS3Objects(bucket,objectKey);
вы хотите выполнить
getS3Objects(bucket,objectKey).then(response => console.log(response));
Внутри вашей функции handler
.
Кроме того, использование функции s3.getObject
неверно.Где первый аргумент является объектом - параметрами, а второй аргумент является функцией обратного вызова.
s3.getObject(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data);
Поэтому в вашем случае вы хотите немного изменить свою функцию getS3Objects
.Если вы хотите использовать обещания, то вы можете сделать это следующим образом.
function getS3Objects(bucket, key) {
return new Promise((resolve, reject) => {
s3.getObject(
{
Bucket: bucket,
Key: key,
ResponseContentType: 'application/json'
},
(err, data) => {
if (err) {
reject(err);
} else {
resolve(data);
}
}
);
});
}