我在新公司安装的 Jenkins 系统上遇到了一个问题,用户向我报告了这个问题。在下载扩展名为“.tgz”的发布文件(Linux 上的 tar 压缩文件)时,MS Internet Explorer 和 Edge 浏览器会将这些文件的扩展名重命名为“.gz”。
我在 IE 上重现了这个问题。如果你左键单击下载链接,它会自动将下载的文件重命名为“.gz”。如果你右键单击并选择“目标另存为”,默认扩展名是“.gz”。我没有使用过 Edge,但我没有理由怀疑这份报告。
我做了一些调查,看看是否可以缩小范围......
我想知道这是否是 Nginx 反向代理对 MIME 类型做了一些奇怪的事情,所以我关闭了 Nginx 服务并将 IE 指向“http://my.internal.jenkins.server:8080“(当然,这不是链接的真实名称,但您看不到它,因为它在我们的防火墙后面)。IE 再次以“.gz”扩展名保存了“.tgz”文件。
我想知道这是否是 Jenkins 的问题,所以我去寻找另一个文件来下载。 下载 Moodle 版本作为 tgz,我再次将其保存为扩展名为“.gz”的文件。因此,这似乎是浏览器的一般问题,而不是我的 Jenkins 服务器的问题。
编辑:对来自网上其他位置的文件重复此操作......
- https://varnish-cache.org/_downloads/varnish-5.2.1.tgz在 Edge 上正确下载。
- https://www.arb-silva.de/fileadmin/silva_databases/qiime/Silva_104_release.tgz在 Edge 上正确下载。
- https://files.zimbra.com/downloads/8.6.0_GA/zcs-patch-8.6.0_GA_1162.tgz在 Edge 上正确下载。
- https://www.coin-or.org/download/source/Ipopt/Ipopt-3.3.3.tgz无法在 Edge 上正确下载。
- http://www.netlib.org/lapack/lapack-3.7.0.tgz无法在 Edge 上正确下载。
- http://gmsh.info/src/gmsh-1.49.0-source.tgz无法在 Edge 上正确下载。
我在 Chrome(Windows 系统)和 Firefox(Ubuntu 系统)上尝试过同样的操作。两者都能正确下载“.tgz”文件。因此,这似乎是 MS 浏览器独有的。
选择“复制快捷方式”,URL 的后缀肯定是“.tgz”。即使您下载文件并让 IE 将其重命名为“.gz”,如果您转到“下载”列表并检查链接,它仍会报告 URL 是“.tgz”。
文件内容不变。下载时改回名称,或者下载后重命名文件,都可以正常工作。
当然,我已经用过 Google。以下是我找到的最接近的答案,但它们似乎没有解决方案。
我在之前的公司中没有注意到 Jenkins 设置存在这个问题。不过,在我之前的公司,我们有一项政策,即优先使用 Chrome 或 Firefox 而不是 IE,因此完全有可能存在这个问题,只是我们从未注意到。我真正的工作是嵌入式软件,因此 DevOps 并不是我擅长的领域。
请问有人对此有什么见解吗?
答案1
Edge 只是查看Content-type
标题来确定使用什么文件扩展名,如下所示您链接的问题。
Moodle: application/g-zip
Varnish: application/octet-stream
Silva: application/gzip
Zimbra: binary/octet-stream
lpopt: application/x-gzip
lapack: application/x-gzip
gmsh: application/x-gzip
application/x-gzip
因此很明显您以某种方式拥有和的文件关联application/g-zip
。