Chromium:防止解压tar.gz

Tho*_* S. 5 mime-types google-chrome chromium gzip tar

最新的 Chrome 和 Chromium 似乎会在 OS X 和 Linux 上为我自动解压缩 .tar.gz 文件。使用wget相同的 URL 时,它显示:

$ wget http://mydomain/dir/file.tar.gz
...
HTTP request sent, awaiting response... 200 OK
Length: ... [application/octet-stream]
...
Run Code Online (Sandbox Code Playgroud)

验证文件类型:

$ file file.tar.gz
file.tar.gz: gzip compressed data, from FAT filesystem (MS-DOS, OS/2, NT)
Run Code Online (Sandbox Code Playgroud)

对使用 Chrome 或 Chromium 下载的文件执行相同操作时:

$ file file.tar.gz
file.tar.gz: POSIX tar archive
Run Code Online (Sandbox Code Playgroud)

请注意,Chrome/Chromium 显然保留了文件名,但对其进行了扩展(文件大小比 wget 下载的文件大 4 倍)。

作为网站管理员,我如何防止 Chrome/Chromium 解压缩文件?

更新:

根据curl -I http://mydomain/dir/file.tar.gz我们的 Apache/Tomcat 组合响应

Content-Encoding: x-gzip
Run Code Online (Sandbox Code Playgroud)

.tar.gz来自其他网站的尝试过的文件没有被 chrome 解压,也不报告Content-Encoding: x-gzip标题,所以似乎有关系。

Max*_*ter 9

您的 Web 服务器可能会发送.tar.gz带有content-encoding: gzip标头的文件,从而导致 Web 浏览器假定应用 gzip 层只是为了节省带宽,而您真正想要发送的是.tar存档。铬像它会与任何其他文件(非的gzip它的另一面.html.js.css,等),它接收gzip压缩(它尽职尽责不修改文件名,虽然)。

要解决此问题,请确保您的 Web 服务器提供.tar.gz没有content-encoding: gzip标头的文件。

更多信息:https : //code.google.com/p/chromium/issues/detail?id=83292

  • @托马斯。据我所知,您的问题是由于发送了 `content-encoding: gzip` 标头,它与 `application/octet-stream` 内容类型无关。换句话说,我建议您更改“内容编码”标头,而不是“内容类型”标头。 (2认同)

Tho*_* S. -2

根据我们的托管提供商的说法,该标头Content-Encoding: x-gzip是由 Tomcat 前面的 Apache 引起的。删除以下行:

LoadModule deflate_module               modules/mod_deflate.so
Run Code Online (Sandbox Code Playgroud)

从它的配置解决了这个问题。

  • 禁用 [`mod_deflate`](https://httpd.apache.org/docs/trunk/mod/mod_deflate.html) 将禁用*所有*文件的 HTTP 压缩,这可能不是您想要的; HTTP 压缩很重要。更好的选择是将 Apache 配置为不更改“.gz”文件,例如使用 [`RemoveOutputFilter`](https://httpd.apache.org/docs/2.4/mod/mod_mime.html#removeoutputfilter)。 (3认同)