Как использовать потоки для создания двоичных данных в nodejs?

У меня есть требование прочитать файл с диска и передать его другому API. Целевой API принимает двоичные данные (например, данные, прочитанные с использованием fs.readFile())

Ниже приведен код API диска

var fileId = '0BwwA4oUTeiV1UVNwOHItT0xfa2M';
var dest = fs.createWriteStream('/tmp/photo.jpg');
drive.files.get({
   fileId: fileId,
   alt: 'media'
})
.on('end', function() {
  console.log('Done');
})
.on('error', function(err) {
  console.log('Error during download', err);
})
.pipe(dest);

Один из известных мне способов - следовать приведенному выше образцу, записать файл в файловую систему и прочитать его оттуда, используя fs.readFile(), Но я знаю, что это плохая практика, и просто хочу сохранить файл в памяти.

Каков был бы лучший способ достичь этого?

Обновить

Ответ есть в комментариях отмеченного ответа.

1 ответ

Решение

Потоки поддерживают двоичные данные как есть. Вам не нужно делать ничего особенного. Просто передайте один поток другому, как вы делаете здесь. Вместо того, чтобы отправлять в поток файлов, как вы делаете в этом примере, вы направите поток в поток этого API.

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