我有一个字符串,它是 base64 编码、gzip 压缩的 JSON 字符串。我能够将 base64 编码的字符串转换为字节。我可以使用 DecompressionStream API 来解压缩字节。
我的问题是,我还没有找到一种方法将放入缓冲区的字节转换为实现stream()函数的对象,从而将所有这些拼凑在一起。这是我到目前为止所拥有的。发送帮助。
const bpString = "0eJztvVlvJEmS...SPUfzw=="
const buf = Buffer.from(bpString, "base64")
//HOW DO I GET FROM `buf` TO `data` ???
const ds = new DecompressionStream("gzip")
const decompressedStream = data.stream().pipeThrough(ds)
const decoded = await new Response(decompressedStream).blob()
PS,我也尝试过使用 fetch 和数据 url,如下所示:const ret = await fetch("data:application/octet-stream;base64," + bpString)
但等待从未返回,也没有抛出错误。不知道幕后发生了什么,但是字符串可能非常大,所以也许它只是默默地失败了?!无论如何,我需要一个可靠的方法。并且它必须在浏览器中运行。
为此,您可以使用
from
以下工厂ReadableStream
:这样您就可以直接获取流,而不是使用仅用于获取流的中间对象。
如果您绝对需要,您可以使用
Blob