你好,我想在亚马逊s3中存储图像。我正在制作一个带有节点js和后端express的react应用程序。我有一个在本地保存图像的代码,在图像文件夹中按需。我正在使用jimp库将图像转换为白色。我想要的是将这些黑白图像直接存储到aws而不是保存到本地硬盘。我需要这样做,因为最终应用程序必须部署到heroku,而heroku无法从本地硬盘读取图像。
下面是代码,通过它我能够根据需要将图像存储在特定目录中。
const input = req.body.input;
google.list({
keyword: input,
num: 15,
detail: true,
})
.then(function (res) {
res.map((data,index)=>{
const url = data.url;
const extension = url.split('.')[url.split('.').length-1]
const foldername=input
Jimp.read(url, function (err, image) {
image.resize(250, 250)
.greyscale()
.write(path.join(__dirname,"../../public/images/"+foldername+"/"+foldername+index+"."+extension));
});
});
})
}).catch(function(err) {
res.send('There was some error')
})
我需要在相同的路径即存储图像。,awsbucketname/foldername/foldername.jpg。我试图将图像转换到缓冲区,但我仍然不明白如何继续下去。有人请帮助我:(
1条答案
按热度按时间2ul0zpep1#
(免责声明:我没有与Jimp的实际经验!)
看起来你在将图像写入缓冲区而不是本地文件的方向上走对了。一旦你初始化了AWS SDK并示例化了S3接口,就应该很容易将缓冲区传递给
upload
函数了。这只是一个草图,当然,遗漏错误处理等。