【问题标题】:Image upload to aws s3 bucket after resizing with graphicMagic使用graphicMagic调整大小后将图像上传到aws s3存储桶
【发布时间】:2018-07-10 00:13:01
【问题描述】:

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

【问题讨论】:

  • stdout 实际上是stream,你做对了,检查我的答案。

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


【解决方案1】:

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

取决于您的操作系统:

Ubuntu/Debian

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

Mac 操作系统

brew install graphicsmagick
brew install imagemagick

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 2020-02-13
    • 2013-03-26
    • 2017-03-13
    • 1970-01-01
    • 2011-10-04
    相关资源
    最近更新 更多