【问题标题】:GraphicsMagick: toBuffer() Stream yields empty buffer (Lambda)GraphicsMagick:toBuffer() 流产生空缓冲区 (Lambda)
【发布时间】:2021-11-21 22:56:40
【问题描述】:

我正在尝试从 lambda 中的 pdf 文件创建拇指,但是当我创建图像时出现以下错误:

Error: stream throws an empty buffer.

我已经将 lambda 内存增加到 300mb,但它不起作用。

const gm = require("gm").subClass({ imageMagick: true });
const fs = require("fs");

const params = {
  Bucket: sourceBucket,
  Key: originalNameImg,
};

const pdf = await s3.getObject(params).promise();

temp_file = mktemp.createFileSync(`/tmp/XXXXXX.pdf`);
fs.writeFileSync(temp_file, pdf.Body);
image = gm(temp_file + "[0]");

image.resize("400", "400").toBuffer("jpg", function(err, buffer) {
  if (err) {
    reject(err);
    return;
  } else {
    resolve();
  }
});

我使用的nodejs版本是:Node.js 14.x

【问题讨论】:

    标签: node.js amazon-web-services aws-lambda gm


    【解决方案1】:

    您应该在 AWS AMI 中安装用于转换图像的 gm 包。

    最新的AWI没有这个包。

    使用 AWS 层

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 2016-06-22
    • 2011-03-21
    • 2021-09-27
    • 2011-11-14
    相关资源
    最近更新 更多