使用 CURL 或 WGET 读取 Gzip 文件页脚
Reading Gzip File Footer with CURL or WGET
我在网络服务器中有一个 gzip 文件。只有当有足够的磁盘 space 来解压缩文件时,我才想下载文件。有没有可能知道
下载文件前的解压大小?
解压缩的大小编码在 gzip 文件的页脚中[1]。我们可以通过以下命令提取解压后的大小
gzip -l
但是,需要下载文件。如果我知道解压后的大小,我想避免文件下载。
您可以使用 HTTP Range header 破解您的方法,但它需要很多 http 请求并且您的服务器需要接受 Range
header.
- 使用
HEAD
方法发送第一个请求,计算总文件大小 content-length
- 发送带有
Range
header 的第二个请求以获取文件的最后 4 个字节。计算这些字节以了解文件大小
- 如果磁盘上有足够的可用空间(file-size + 未压缩的大小),请下载完整文件。
我在网络服务器中有一个 gzip 文件。只有当有足够的磁盘 space 来解压缩文件时,我才想下载文件。有没有可能知道 下载文件前的解压大小?
解压缩的大小编码在 gzip 文件的页脚中[1]。我们可以通过以下命令提取解压后的大小
gzip -l
但是,需要下载文件。如果我知道解压后的大小,我想避免文件下载。
您可以使用 HTTP Range header 破解您的方法,但它需要很多 http 请求并且您的服务器需要接受 Range
header.
- 使用
HEAD
方法发送第一个请求,计算总文件大小content-length
- 发送带有
Range
header 的第二个请求以获取文件的最后 4 个字节。计算这些字节以了解文件大小 - 如果磁盘上有足够的可用空间(file-size + 未压缩的大小),请下载完整文件。