当我使用nodejs通过http请求获取图像时如何获取图像格式

时间:2018-06-07 10:24:12

标签: node.js line-api

我通过线路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来创建文件具有相同的格式。

1 个答案:

答案 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

决定