Вы пропускаете вызов метода .promise()
.
promises.push(s3.upload(params).promise());
Без вызова .promise()
вызов на загрузку фактически не инициируется. Прочитайте эту статью , чтобы понять распространенные ошибки при использовании NodeJS Promises в AWS Lambda.
Кстати, если вы используете async / await на NodeJS10.x и у вас есть только одно изображение в вашей логике c, как указано в коде ниже, представляет собой значительно упрощенную и читаемую версию того же кода:)
exports.handler = async(event, context, callback) => {
const promises = [];
var message_body = JSON.parse(event.body);
let encodedImage = message_body.base64;
let decodedImage = Buffer.from(encodedImage, 'base64');
var params = {
"Bucket": "mybucket69-bucket",
"Key": "testkey",
"Body": "someRandomString"
};
console.log("function triggered. ");
try {
const data = await s3.upload(params).promise();
console.log('Success');
console.log(data);
return;
} catch (err) {
console.log(err);
throw err;
}
};
Ниже приведен вывод
START RequestId: 16b2982d-ac4f-18d6-e562-f6d81c973053 Version: $LATEST
2020-01-08T01:31:14.159Z 16b2982d-ac4f-18d6-e562-f6d81c973053 INFO function triggered.
2020-01-08T01:31:14.348Z 16b2982d-ac4f-18d6-e562-f6d81c973053 INFO Success
2020-01-08T01:31:14.352Z 16b2982d-ac4f-18d6-e562-f6d81c973053 INFO { ETag: '"7c6b8fecf5a9a9925d4115ee4f3c85a6"',
Location: 'https://sarthakj178.s3.ap-south-1.amazonaws.com/testkey',
key: 'testkey',
Key: 'testkey',
Bucket: 'sarthakj178' }
END RequestId: 16b2982d-ac4f-18d6-e562-f6d81c973053
REPORT RequestId: 16b2982d-ac4f-18d6-e562-f6d81c973053 Init Duration: 1728.90 ms Duration: 207.42 ms Billed Duration: 300 ms Memory Size: 128 MB Max Memory Used: 70 MB
null
И файл создается в S3
aws s3 ls s3://sarthakj178
2020-01-08 07:01:14 16 testkey