首页 > 解决方案 > 使用 CURL 或 WGET 读取 Gzip 文件页脚

问题描述

我在 Web 服务器中有一个 gzip 文件。只有当有足够的磁盘空间来解压文件时,我才想下载文件。是否可以在下载文件之前知道解压缩大小?

解压缩后的大小编码在 gzip 文件[1]的页脚中。我们可以使用以下命令提取解压后的大小

gzip -l

但是,需要下载文件。如果我能知道解压缩的大小,我想避免文件下载。

标签: linuxhttpcurlgzipwget

解决方案


您可以使用HTTP Range 标头破解您的方式,但这将需要许多 http 请求,并且您的服务器需要接受Range标头。

  1. 使用该方法发送第一个请求,以HEAD计算总文件大小content-length
  2. 发送带有Range标头的第二个请求以获取文件的最后 4 个字节。计算这些字节以了解文件大小
  3. 如果磁盘上有足够的可用大小(文件大小 + 未压缩大小),请下载完整文件。

推荐阅读