使用 graphicMagic 调整大小后将图像上传到 aws s3 存储桶
Image upload to aws s3 bucket after resizing with graphicMagic
我正在使用 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 不是正确的做法,但我该如何让它工作。
你的代码没问题,你缺少 gm
依赖项:imagemagick
或 graphicsmagick
,如果缺少其中之一,不会触发错误,但你会得到一个 0 字节的文件。
取决于你的OS:
Ubuntu/Debian
sudo apt-get install graphicsmagick
# or
sudo apt-get install imagemagick
Mac OS
brew install graphicsmagick
brew install imagemagick
对于windows或其他OS,检查:
我正在使用 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 不是正确的做法,但我该如何让它工作。
你的代码没问题,你缺少 gm
依赖项:imagemagick
或 graphicsmagick
,如果缺少其中之一,不会触发错误,但你会得到一个 0 字节的文件。
取决于你的OS:
Ubuntu/Debian
sudo apt-get install graphicsmagick
# or
sudo apt-get install imagemagick
Mac OS
brew install graphicsmagick
brew install imagemagick
对于windows或其他OS,检查: