【问题标题】:Error: Stream yields empty buffer only on EC2错误:流仅在 EC2 上产生空缓冲区
【发布时间】:2016-04-17 20:59:36
【问题描述】:

我的代码可以在 localhost 上运行,但不能在 EC2 上运行(我使用的是 Elastic BeanStalk)。我收到错误:Stream 在 toBuffer 函数上产生空缓冲区。有人可以解释如何解决它吗?我看到了这个post,但我不明白如何在 EC2 中添加 JPEG 支持。

var _45px = { width: 45, dstnKey: fileName, destinationPath: "thumbnails" };
function convert(response, next) {
        console.time("convertImage");
        console.log("Reponse content type : " + response.ContentType);
        console.log("Conversion");
        GM(response.Body, fullName).antialias(true).density(300).setFormat('jpeg').toBuffer(
            function(err, buffer) {
                if (err) {
                    next(err);
                } else {
                    console.timeEnd("convertImage");
                    next(null, buffer);
                }
            });
    }

【问题讨论】:

    标签: node.js amazon-ec2 imagemagick buffer jpeg


    【解决方案1】:

    我在使用 PNG 格式时遇到了类似的问题。出现问题是因为 EC2 实例不支持 PNG 和 JPEG,因此我们需要相应地安装所需的依赖项,否则 imagemagick(或 graphicsmagick)不会返回任何流值作为输出。

    为了添加 PNG 支持,我尝试卸载 graphicsmagick 模块,然后安装依赖项并重新安装 graphicsmagick:

    apt-get install libpng-dev, apt-get 安装 graphicsmagick (在你的情况下,这将是 imagemagick)

    这解决了问题。我相信对于 jpeg 支持,该库将是: libjpeg-dev.

    这些适用于 EC2 ubuntu 实例

    【讨论】:

      猜你喜欢
      • 2016-01-20
      • 2016-06-22
      • 2016-05-27
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 2018-05-05
      • 2015-07-31
      相关资源
      最近更新 更多