问题标签 [pako]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
258 浏览

javascript - pako.deflate 没有减少我的请求的大小

我有一个有效载荷很大的 POST 请求。在向服务器发出请求之前,我试图用 pako 将其放气,因此它更小。但是,压缩版本的有效负载大小与未压缩版本没有什么不同。我错过了什么吗?

我发送的选项options.body是 aJSON.stringify(largeJsonObject)并且长度超过 1024。当我查看网络选项卡时,我可以看到我的请求正在发送,并且内容已被编码,但请求大小与未压缩时相同

0 投票
2 回答
3581 浏览

javascript - 浏览器 Javascript:将 Json 压缩为 gzip 并上传到 S3 预签名 URL

任何意见,将不胜感激。我的 Web 应用程序中有一个 json 变量,我想通过预签名的 URL 压缩并上传到 S3。

我能够成功上传 JSON,但我无法 gzip JSON 然后上传它。

我尝试构建 gzipped json 的三种不同方式是:

对于每次尝试,我都通过 Angular 的 HTTP 客户端上传了 resultAsBinString,标题为 Content-Type: 'application/x-gzip' 和 Content-Encoding: 'gzip'

但是当(如果经常出现网络错误)文件随后从 S3 下载时,当尝试在终端中使用 gzip 或 gunzip 解压缩时,会给出错误消息:'not in gzip format'

我试图遵循的来源:

https://github.com/nodeca/pako/issues/55 https://github.com/nodeca/pako/blob/master/examples/browser.html

0 投票
1 回答
1291 浏览

javascript - Pako.js 错误,尝试膨胀 Websocket 消息时出现“无效的存储块长度”

我正在尝试使用 javascript 膨胀来自第三方 websocket 的消息,但收到一个pako.js

“无效的存储块长度”错误。

我用来实现网络套接字的示例代码可以在这里找到:

https://github.com/okcoin-okex/API-docs-OKEx.com/tree/master/demo

可以在此处找到代码的完整工作版本:

https://github.com/Tucsky/SignificantTrades/blob/master/src/exchanges/okex.js ( https://aggr.trade )

我尝试过使用zlib.js而不是Pako.js,但在该库中遇到了更困难的问题。我已经尝试过在 stackoverflow 上找到的其他替代解决方案,但它们似乎并没有满足我的需求。

这是我正在运行的代码,它显示了错误。 https://jsfiddle.net/fwkgmvjr/

我希望来自 websocket 的消息能够以某种方式轻松充气。

0 投票
1 回答
341 浏览

javascript - 如何在 JavaScript 中复制 GZipStream.Write()?

我有这段C#代码:

我想重现这段代码,JavaScript所以我尝试了pakonode.js zlib。以下是它们的输出与彼此
略有不同的方式:GZipStream

我还尝试了 and 的一些不同选项pakozlib虽然使用某些选项结果不同,但它从未匹配C#结果:

所以我该怎么做?
为什么会有这些细微的差别?
我怎样才能达到准确的GZipStream.Write()输出?

修复(感谢@Sebastian):

0 投票
1 回答
1043 浏览

javascript - 客户端从C#压缩字符串解压回字符串

我有一些大型数据集,我想在发送给我的客户之前对其进行压缩。压缩有效。

利用这段代码将我的数据变成一个漂亮的小base64String:

示例:string mytest = "这是一些测试文本。";

在客户端,我需要将整个事情倒退。

我可以使用( library )将 base64string 转换回字节数组:

然后使用 pako.js 我可以压缩 gzip 压缩内容:

最后,我应该能够将其转换回我的文本:

问题是,虽然我没有收到错误,但我没有得到预期的结果,这应该是原始字符串 - “这是一些测试文本。”

输出是这样的(不能全部粘贴):xg``ïæ

有没有想过我错过了什么?

0 投票
1 回答
2614 浏览

flutter - 颤振/飞镖:如何在颤振中解压缩/膨胀zlib二进制字符串

我在我的 nodejs 服务器上使用 pako 包,并将压缩的二进制字符串从服务器发送到我的颤振客户端。我无法在颤振客户端上解压缩/膨胀它。我尝试了库的组合

我的服务器 NodeJS 代码:

我的颤振代码:

我收到以下异常..

在 1,725 毫秒内重新启动应用程序。E/flutter (25340): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] 未处理异常:InternalError: 'Filter error, bad data' E/flutter (25340): #0
_FilterImpl.processed (dart: io-patch/filter_patch.dart:11:32) E/flutter (25340): #1 _FilterSink.addSlice (dart:io/data_transformer.dart:610:29) E/flutter (25340): #2
_FilterSink.add ( dart:io/data_transformer.dart:596:5) E/flutter (25340): #3 ZLibDecoder.convert (dart:io/data_transformer.dart:465:9) E/flutter (25340): #4
Codec.decode ( dart:convert/codec.dart:26:34)

0 投票
1 回答
333 浏览

php - 如何解压缩 php 中的数据以及使用 js 中的 pako.deflate 的数据

pako.deflate用来压缩javascript中的数据,如下所示:

在网络服务器中,我需要使用 PHP 解压缩该数据。

这就是我所做的

$res回声false

我错过了什么?

0 投票
1 回答
551 浏览

javascript - 用 Pako 放气,用 asp net core 充气

我正在尝试在前端放气 .xlsx 文件并在服务器端,在 asp net core 2.2 服务器中对其进行充气。

我尝试了一切,现在我有了这个:

完全直截了当,pako.deflate 就足够了。

现在在后端,我尝试了所有方法,但根据文档,结果如下: 在此处输入图像描述

我也试过 GZipStream,但结果是一样的。我找不到任何关于压缩/解压缩的信息,但有很多关于其他方式的信息。

0 投票
2 回答
722 浏览

python - 如何在 python 中膨胀这个 zlib 字节字符串?

我正在编写一个与流行的数据仓库 SaaS 交互的工具。他们的在线 sql 编辑器将 sql 工作表序列化为 JSON,但 SQL 工作表的主体是使用 pako.js 对 zlib 进行压缩的。我正在尝试从 python 读取和扩充这些 zlib 字符串,但我只能解码包含短的字节串

带有 sql 文本的示例是字母a

如果我包含分号a;,则无法解压缩:

注意:我还尝试使用 'punycode' 解码这些示例,我在 javascript 实现中找到了参考。

我对 zlib 的理解非常有限,但我发现 zlib 字符串的前两个和最后四个字节是页眉/页脚,如果我们使用幻数 -15 运行 zlib 可以修剪。完全有可能有 zlib 幻数可以解压缩这些字符串而无需剥离页眉和页脚,但是当从 -64 循环到 64 时,我无法让任何组合起作用。

我已经通过在线 sql 工作表编辑器的保存和加载功能设置了断点,发现它们正在使用 pako zlib 库pako.deflate(a, {to: 'string'})pako.inflate(b['body'], {to: 'string'}) 并且我可以使用该pako库在浏览器中对 sql 字符串进行充气/放气,但一直无法在 python 中重现相同的结果。

0 投票
0 回答
150 浏览

javascript - 在JS中解压numpy数组

我有浮点数数组,我使用 zlib 压缩并存储在数据库中。然后我想通过 HTTP 发送压缩数据并使用 JavaScript 在客户端解压缩。我该怎么做?我正在使用以下代码压缩数据:

我可以简单地在 python 中使用:

但是如何在 JS 中解压呢?我试过pako,但没有成功。这是错误的方法吗?我应该使用其他库压缩数组吗?