【发布时间】:2021-09-07 18:10:19
【问题描述】:
最近,我一直在处理Chrome 上的一个问题,该问题导致无法正确保存压缩的gzip 文件。
这个帖子描述了根本问题:Downloaded Gzip seems to be currupted (Chrome)
如链接中所述,该文件已在 Firefox 中正确下载,因为 AJAX 响应收到的 blob 是 gzip 编码的,因此正确保存为 .gz 文件。但是当在 Chrome 中接收到 blob 数据时,它会自动解压缩,获得纯文本(UTF-8 编码)而不是我们正在寻找的gzip 编码。这会使保存的文件损坏,因为它被保存在一个应该被 gzip 压缩的文件中的 UTF-8 编码 blob。
经过一番研究,我终于找到了问题的原因:显然在服务器响应中指定了content-encoding: gzip标头时,Chrome会自动解压文件,假设使用gzip压缩的主要原因,只是出于节省带宽的目的。这个问题在下面的帖子中有更详尽的描述:Chromium: prevent unpacking tar.gz
在那篇帖子中,gzip 启用压缩以包装.tar 文件,但是在我的情况下,gzip 压缩下没有文件(我直接将数据写入服务器端的gzip 文件,使用gzip python module)。因此,当Chrome 解压gzip 时,只有纯文本。我试图在不指定 content-encoding 标头的情况下显式发送响应,但 Chrome 似乎会自动检测编码。
反正我可以禁用Chromes的gzip自动解压吗?
【问题讨论】:
-
包括简要说明。希望对您有所帮助!
-
不,它没有
标签: javascript google-chrome gzip tar