Как использовать потоки для создания двоичных данных в 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.