Как получить формат изображения, когда я получаю изображение через HTTP-запрос, используя nodejs

Я получаю изображение через строку 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 ответ

Вы можете просто сначала прочитать заголовки изображения, и вы получите формат изображения в нем, в соответствии с форматом изображения можете сохранить его в s3 Ковш.

Вот пример кода.

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

Другие вопросы по тегам