Получить двоичное изображение от S3 через шлюз API

Мне нужно получить изображение через https://xxx.yyy/zzz/1040 rest api, и я покажу изображение инструменту SNS (Line) через API-интерфейс imagemap.

Я пытаюсь получить изображение, сохраненное в S3 Bucket через лямбду. Вот поток, который я пытаюсь реализовать:

  1. Сохранить изображение на S3
  2. Лямбда, чтобы получить изображение base64 от S3 с помощью aws sdk и вернуть кодированное изображение base64
  3. Config api gateway для преобразования изображения base64 в двоичное изображение
  4. Нажмите на конечную точку api rest, чтобы получить реальное изображение

Выпуск:

Я не мог получить реальное изображение через браузер и почтальон

пожалуйста помоги! и дайте мне знать, если вам нужна более подробная информация...

Lambda:

'use strict';

const aws    = require('aws-sdk');
const s3     = new aws.S3({ region: 'ap-northeast-1' });
const BUCKET = 'test';

module.exports.handler = (event, context, callback) => {
    console.log('====== started ====');
    s3.getObject({ Bucket: BUCKET, Key: 'line-service-menu-option2.jpg' }).promise()
    .then(data => {
        callback(null, {
            statusCode: 200,
            headers: { 'Content-Type': 'image/jpeg'},
            body: data.Body.toString('base64'),
            isBase64Encoded: true,
        });
    }).catch(e => console.log(e));
};

Журнал лямбда-теста

{"statusCode": 200, "headers": {"Content-Type": "image / jpeg"}, "body": "/ 9j / 4AAQSkZJRgABAQAAAQABAAD / 2wC ************** *********",
"isBase64Encoded": true}

Конфигурация шлюза API

[Настройка API][1] [запрос метода][2] [запрос интеграции][3] [ответ интеграции][4] [ответ метода] [5]

[1]: [2]: [3]: [4]: [5]:

0 ответов

Другие вопросы по тегам