Javascript 使用graphicMagic调整大小后,图像上载到aws s3存储桶
在上传到aws s3 bucket之前,我正在使用graphicMagic调整图像的大小。下面的代码上载一个大小为0字节的图像,尽管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.
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
实际上是一个流
,您做得正确,请检查我的答案。