首页 > 编程语言 >NodeJS 将 Base64 或 Buffer 转可读流(Readable)

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

时间:2022-12-23 19:22:50浏览次数:64  
标签:base64 const Buffer Base64 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

标签:base64,const,Buffer,Base64,Readable,转可读
From: https://www.cnblogs.com/taohuaya/p/17001355.html

相关文章

  • JS 通过 URL 获取图片并转成Base64格式
    需求输入一个图片的URL,获取到图片的Base64格式数据前提npminstallaxios代码importaxiosfrom'axios'/***通过url获取图片并转成base64*@param{str......
  • D3D-GetBackBuffer &GetFrontBufferData 抓屏&D3D抓取GPU数据
    HRESULTGetBackBuffer([in]          UINT              iSwapChain,[in]          UINT              B......
  • C++学习---cstdio的源码学习分析10-改变文件流文件流buffer函数setvbuf
    cstdio中的文件访问函数stdio.h中定义了一系列文件访问函数(fopen,fclose,fflush,freopen,setbuf,setvbuf),接下来我们一起来分析一下setvbuf对应的源码实现。-fopen:打开文件-......
  • C++学习---cstdio的源码学习分析09-设置文件流buffer函数setbuf
    cstdio中的文件访问函数stdio.h中定义了一系列文件访问函数(fopen,fclose,fflush,freopen,setbuf,setvbuf),接下来我们一起来分析一下setvbuf对应的源码实现。-fopen:打开文件-......
  • Protocol Buffers 3 学习笔记
    官方文档地址syntax="proto3";必须放在.proto文件首行,之前不能有空白行或者注释行,如果不存在或者没有放在首行,则编译器认为是proto2字段对应的序号,在1-15之内(含)时,编码......
  • 技术分享 | MySQL:change buffer 何时生效
    作者:胡呈清爱可生DBA团队成员,擅长故障分析、性能优化,个人博客:https://www.jianshu.com/u/a95ec11f67a8,欢迎讨论。已知changebuffer的原理对于普通二级索引,当插入、修改......
  • StringBuilder和StringBuffer的区别以及衍生题目
    StringBuilder和StringBuffer的区别为什么StringBuffer是线程安全的?StringBuffer在单机环境下线程安全吗?为什么?StringBuffer在多机环境下线程安全吗?为什么?StringBuffer......
  • 前后台Base64加密解密
    //待加密的对象constpersonInfo={name:'贾飞天',age:18,address:'%10%'};/*⭕window.btoa():Base64加密该方法使用"A-Z","a-......
  • buuoj-特殊的base64
    1.64bitwinexe无壳2.打开密密麻麻,但是题目叫特殊的BASE64,我选择直接shift+f12找密文和base表先试一下3.真给我解出来了importbase64origin='mTyqm7wjODkrNLcWl0e......
  • StringBuilder和 StringBuffer的用法
    从String类说起StringBuilderStringBuffer从String说起String是java定义的一个final类,不能被继承。也是我们日常生活中最常见到的类之一,可以实现对字符串的各种操作,......