NodeJS 将 Base64 或 Buffer 转可读流(Readable)
需求
如果我们有一个图片文件,想创建当前图片可读流(Readable
), 可以像这样 const fooReadStream = fs.createReadStream('./foo.png')
,
获取到 foo.png
的可读流 (Readable
)。
但有时候我们可能直接就有一个 foo.png
的 base64
或 buffer
数据, 怎样才能直接转换可读流(Readable
)呢?
下面代码实现 Base64
到 可读流(Readable
)的转换。
代码
const { Buffer } = require('node:buffer')
const { Readable } = require('node:stream')
/**
* base64 转可读流
* @param {string} base64
* @returns {stream.Readable}
*/
function base64ToReadStream(base64) {
const buf = Buffer.from(base64, 'base64')
return Readable.from(buf)
}
参考
Create ReadStream from Base64 encoded string by file
Converting a Buffer into a ReadableStream in Node.js