我使用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不是正确的做法,但是我该怎样才能让它发挥作用。
答案 0 :(得分:2)
您的代码很好,您缺少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或其他操作系统,请检查: