Отображение изображения на конечной точке API с использованием aws lambda и node.js - PullRequest
0 голосов
/ 12 октября 2018

Сейчас я редактирую встроенный код в AWS lambda.Это то, что у меня сейчас:

var qrImage = require('qr-image');


exports.handler = async (event) => {
    return sendRes(200,'hi');
};
/*
const sendRes = (status, body) => {
  var response = {
    statusCode: status,
    headers: {
      "Content-Type": "text/html"
    },
    body: body
  };
  return response;
}; 
*/

const sendRes = (status, body) => {
  const svg_string = qrImage.imageSync('http://www.nodejs.org',{ type: 'png', size: 20 });
  var response = {
    statusCode: status,
    headers: {
      "Content-Type": "image/jpeg"
    },
    body: svg_string
  };
  return response;
};

Это выводит текст Внутренняя ошибка сервера.

Приведенный ниже код создает файл png и сохраняет его.Функциональность, которую я хотел бы использовать для лямбды, - просто отображать изображение (без сохранения), когда я получаю доступ к конечной точке.Но я не уверен, как это сделать (новичок в Lamda, Node.js).Что именно я должен изучить?

var qrImage = require('qr-image');
var fs = require('fs');

qrImage
    .image("http://www.nodejs.org", {type:'png', size:20})
    .pipe(fs.createWriteStream("MyQRCode.png"));

РЕДАКТИРОВАТЬ Я сделал несколько небольших изменений, и это, кажется, работает

var qrImage = require('qr-image');

exports.handler = async (event) => {
    return sendRes(200,'hi');
};

const sendRes = (status, body) => {
  const svg_string = qrImage.imageSync('this is AWS!', { type: 'svg', size: 10 });
  var response = {
    statusCode: status,
    headers: {
      "Content-Type": "image/svg+xml"
    },
    body: svg_string
  };
  return response;
};

1 Ответ

0 голосов
/ 12 октября 2018

Если вы возвращаете изображение только с помощью лямбды, то синхронизация также будет работать, здесь код для этого

const sendRes = (status, body) => {
  const svg_string = qr.imageSync('http://www.nodejs.org', { type: 'png', size: 20 });
  var response = {
    statusCode: status,
    headers: {
      "Content-Type": "image/jpeg"
    },
    body: svg_string
  };

  return response;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...