Как загрузить изображение из url в буфер в nodejs

Я новичок в nodejs и пытаюсь настроить сервер, на котором я получаю информацию exif с изображения. Мои изображения находятся на S3, поэтому я хочу иметь возможность просто передать в s3 url в качестве параметра и захватить изображение из него.

Я использую проект ExifImage ниже, чтобы получить информацию exif и в соответствии с их документацией:

"Вместо предоставления имени файла в вашей файловой системе вы также можете передать Buffer в ExifImage."

Как загрузить изображение в буфер в node из URL-адреса, чтобы я мог передать его функции ExifImage

Проект ExifImage: https://github.com/gomfunkel/node-exif

Спасибо за вашу помощь!

Ответ 1

Попробуйте настроить запрос следующим образом:

var request = require('request').defaults({ encoding: null });
request.get(s3Url, function (err, res, body) {
      //process exif here
});

Это вызовет запрос для вывода буфера вместо строки.

Ответ 2

Используйте библиотеку request.

request('<s3imageurl>', function(err, response, buffer) {
    // Do something
});

Кроме того, node-image-headers может вас заинтересовать. Похоже, что он берет поток, поэтому даже для загрузки полного изображения с S3 может потребоваться обработка обработчиков.

Обновлено с правильной сигнатурой обратного вызова.