You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Jenkins http_request插件正确保存gzip格式压缩文件?

解决Jenkins http_request插件下载gzip压缩包后无法解压的问题

问题原因

你用http_request插件下载gzip压缩包时,直接通过response.content获取内容并以text参数写入文件,会导致二进制数据被当作文本处理(默认按UTF-8编码转换),破坏了原始gzip文件的字节结构,所以文件被识别为通用"data"格式,无法正常解压。

解决方案

方案1:直接用插件的outputFile参数保存(推荐)

http_request插件支持直接将响应内容写入文件,跳过字符串转换步骤,完美保留二进制结构:

httpRequest url: "https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v1.91.0/pact-1.91.0-linux-x86_64.tar.gz",
            httpMode: 'GET',
            outputFile: 'pact-1.91.0-linux-x86_64.tar.gz'

方案2:通过字节数组写入文件

如果需要手动处理响应内容,使用response.contentBytes获取原始字节数组,再通过writeFile的bytes参数写入:

def response = httpRequest url: "https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v1.91.0/pact-1.91.0-linux-x86_64.tar.gz",
                          httpMode: 'GET'
writeFile file: 'pact-1.91.0-linux-x86_64.tar.gz', bytes: response.contentBytes

验证方法

执行以下命令确认文件格式正常:

file pact-1.91.0-linux-x86_64.tar.gz

正常输出应为:pact-1.91.0-linux-x86_64.tar.gz: gzip compressed data,此时tar xzf pact-1.91.0-linux-x86_64.tar.gz即可正常解压。

关于已损坏文件的修复

如果已经生成了损坏的文件,由于二进制数据被文本编码转换破坏,几乎无法通过Linux命令完全恢复,建议直接重新下载。

内容的提问来源于stack exchange,提问作者Fabio Carriel Fonseca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 14:58:31