Я пытаюсь создать лямбда-функцию, которая принимает изображение как multipart / form-data, выполняет некоторую обработку изображения и загружает его в s3, а также возвращает ответ клиенту.Но я застрял в самой первой части загрузки изображения в AWS Lambda с использованием API-шлюза.Я пытался сделать это в NodeJS, как показано ниже:
exports.handler = async (event, context, callback) => {
var buf = Buffer.from(event.body.replace(/^data:image\/\w+;base64,/, ""),"base64");
var data = {
Bucket: "bucket-name",
Key: "abc.jpg",
Body: buf,
ContentType: 'image/jpg',
ACL: 'public-read'
};
data = await s3.upload(data).promise();
return {
statusCode: 200,
body: JSON.stringify(buf),
};
Я получаю следующий ответ в Postman, отправив запрос POST к API:
{
"ETag": "\"b0e5b18d38904f109e0aef0b29e132be\"",
"Location": "https://bucket-name.s3.us-east-2.amazonaws.com/abc.jpg",
"key": "abc.jpg",
"Key": "abc.jpg",
"Bucket": "bucket-name"
}
Но когда я пытаюсьпросмотрите загруженное изображение в моем браузере, используя общедоступный URL-адрес в ответе, приведенном в ответе выше, я получаю пустое изображение.
Может кто-нибудь указать мне здесь ошибку или предложить какой-то более эффективный подход.Спасибо.