通过api网关

时间:2018-04-05 11:38:54

标签: image aws-api-gateway imagemap line-api

我需要的是通过https://xxx.yyy/zzz/1040 rest api获取图像,我将通过imagemap API将图像显示到SNS工具(Line)。

我试图通过lambda将图像保存在S3存储桶中。以下是我正在尝试实施的流程:

  1. 将图像保存到S3
  2. Lambda使用aws sdk从S3获取base64图像并返回base64编码图像
  3. 配置api网关将base64图像转换为二进制图像
  4. 点击休息api端点以获得真实图像
  5. 问题:

    我无法通过浏览器和邮递员获得真实的图像

    请帮忙!如果您需要更多详细信息,请告诉我......

    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));
    };
    

    lambda测试日志

      

    {“statusCode”:200,“headers”:{       “Content-Type”:“image / jpeg”},“body”:“/ 9j / 4AAQSkZJRgABAQAAAQABAAD / 2wC ***********************”,<登记/>   “isBase64Encoded”:true}

    api网关配置

    [API设置] [1] [方法请求] [2] [集成请求] [3] [集成响应] [4] [方法响应] [5]

    [1]:https://i.stack.imgur.com/Mvt13.jpg [2]:https://i.stack.imgur.com/E2tns.jpg [3]:https://i.stack.imgur.com/poNHl.jpg [4]:https://i.stack.imgur.com/JgVf8.jpg [5]:https://i.stack.imgur.com/IS00q.jpg

0 个答案:

没有答案