2

在将图像上传到 aws s3 存储桶之前,我正在使用 graphicsMagic 调整图像大小。下面的代码上传了一个 0 字节大小的图像,尽管来自 s3 上传的响应很好。以下代码是我正在做的。path 是需要上传的图片的路径。键是使文件名唯一的散列键。

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 不是正确的做法,但我该如何让它发挥作用。

4

1 回答 1

2

您的代码很好,您缺少gm依赖项:imagemagick或者graphicsmagick,如果缺少其中一个,则不会触发错误,但您将获得一个 0 字节的文件。

根据您的操作系统:

Ubuntu/Debian

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

苹果系统

brew install graphicsmagick
brew install imagemagick

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

于 2018-06-03T20:38:20.470 回答