NodeJS 将 Base64 或 Buffer 转可读流(Readable)

需求

如果我们有一个图片文件,想创建当前图片可读流(Readable), 可以像这样 const fooReadStream = fs.createReadStream('./foo.png'),
获取到 foo.png 的可读流 (Readable)。

但有时候我们可能直接就有一个 foo.pngbase64buffer 数据, 怎样才能直接转换可读流(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

posted @ 2022-12-23 19:07  暗恋桃埖源  阅读(1514)  评论(0编辑  收藏  举报