我通过线路api获取图像。当用户将图像发送到我的机器人时,我会得到它,并上传到aws s3存储桶:GET https://api.line.me/v2/bot/message/{messageId}/content
我得到了成功的形象。我正在使用file = fs.createWriteStream("file.jpg")
和pipe(file)
。但是,它将被修复为文件扩展名“jpg”。例如,我得到的文件具有扩展名“gif”,它仍将以“jpg”格式保存。
那么,如何获取图像格式,如果我知道图像格式,我可以使用fs.createWriteStream来创建文件具有相同的格式。
答案 0 :(得分:0)
您可以直接读取图像标题,然后在其中获取图像格式,根据图像格式可以将其保存到s3
Bucket。
以下是示例代码。
request.head('https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png', function (err, res, body) {
console.log('content-type:', res.headers['content-type']);
console.log('content-length:', res.headers['content-length']);
let filename = 'image.png' // according to content type
request(uri).pipe(fs.createWriteStream(filename)).on('close', callback);
});
filename
可以根据content-type