Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用graphicMagic调整大小后,图像上载到aws s3存储桶_Javascript_Node.js_Amazon S3_Aws Sdk_Gm - Fatal编程技术网

Javascript 使用graphicMagic调整大小后,图像上载到aws s3存储桶

Javascript 使用graphicMagic调整大小后,图像上载到aws s3存储桶,javascript,node.js,amazon-s3,aws-sdk,gm,Javascript,Node.js,Amazon S3,Aws Sdk,Gm,在上传到aws s3 bucket之前,我正在使用graphicMagic调整图像的大小。下面的代码上载一个大小为0字节的图像,尽管s3上载的响应很好。下面的代码是我正在做的。路径是需要上载的图像的路径。密钥是使文件名唯一的哈希密钥 gm(path) .resize(100,100) .stream(function(err, stdout, stderr){ if(err){ console.log("Error resizing image.

在上传到aws s3 bucket之前,我正在使用graphicMagic调整图像的大小。下面的代码上载一个大小为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不是正确的做法,但我该如何使它工作。

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

根据您的操作系统:

Ubuntu/Debian

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

brew install graphicsmagick
brew install imagemagick
对于windows或其他操作系统,请检查:


stdout
实际上是一个
,您做得正确,请检查我的答案。