使用graphicMagic

时间:2018-06-03 20:10:57

标签: javascript node.js amazon-s3 aws-sdk gm

我使用graphicMagic来调整图像大小,然后再将其上传到aws s3存储桶。下面的代码上传了一个0字节大小的图像,尽管s3上传的响应很好。以下代码就是我正在做的事情。路径是需要上传的图像的路径。密钥是用于使文件名唯一的哈希键。

gm(path)
  .resize(100,100)
  .stream(function(err, stdout, stderr){
      if(err){
              console.log("Error resizing image. Message:",err);
      }
      else{
          console.log(stdout);
          var data = {
              Bucket: 'my-bucket',
              Key: key+"_thumb.jpg",
              Body: stdout,
              ACL: "public-read",
              ContentType:"image/jpeg"
          };
          p1 = s3.upload(data).promise();
      }
  });

我认为stdout不是正确的做法,但是我该怎样才能让它发挥作用。

1 个答案:

答案 0 :(得分:2)

您的代码很好,您缺少gm个依赖项:imagemagickgraphicsmagick,如果缺少其中一个,则不会触发任何错误,但您会得到0字节文件。

取决于您的操作系统:

<强>的Ubuntu / Debian的

sudo apt-get install graphicsmagick
# or
sudo apt-get install imagemagick

Mac OS

brew install graphicsmagick
brew install imagemagick

对于Windows或其他操作系统,请检查: