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

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

Вы можете просто сначала прочитать заголовки изображения, и вы получите формат изображения в нем, в соответствии с форматом изображения можете сохранить его в 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

...