我需要从驱动器读取文件并将其传递给另一个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()
从那里读回来。但是,我知道这是一个不好的做法,只是想把文件保存在内存中。
实现这一目标的最佳方法是什么?
更新
答案在标记答案的评论中。
答案 0 :(得分:0)
流按原样支持二进制数据。你不需要做任何特别的事情。只需将一个流传输到另一个流,就像你在这里做的一样。您可以通过管道传输到该API的流,而不是像您在此示例中那样管道传输到文件流。