linux - 使用 CURL 或 WGET 读取 Gzip 文件页脚
问题描述
我在 Web 服务器中有一个 gzip 文件。只有当有足够的磁盘空间来解压文件时,我才想下载文件。是否可以在下载文件之前知道解压缩大小?
解压缩后的大小编码在 gzip 文件[1]的页脚中。我们可以使用以下命令提取解压后的大小
gzip -l
但是,需要下载文件。如果我能知道解压缩的大小,我想避免文件下载。
解决方案
您可以使用HTTP Range 标头破解您的方式,但这将需要许多 http 请求,并且您的服务器需要接受Range
标头。
- 使用该方法发送第一个请求,以
HEAD
计算总文件大小content-length
- 发送带有
Range
标头的第二个请求以获取文件的最后 4 个字节。计算这些字节以了解文件大小 - 如果磁盘上有足够的可用大小(文件大小 + 未压缩大小),请下载完整文件。
推荐阅读
- c++11 - 现代英特尔上的 C++11:我是疯了还是非原子对齐的 64 位加载/存储实际上是原子的?
- php - 将 Codeigniter 3 与 phpmyadmin 数据库和 fullcalendar.io 集成
- c# - 我无法使用 FireFox C# selenium webdriver 打开我的应用程序
- java - 如何将 int 计算转换为 if in.equals?
- mongodb - 在 MongoDB 副本集的上下文中,什么是活跃多数?
- r - 使用 plotLMER.fnc 绘制两个预测变量 (lme4) 之间的交互
- r - 正则表达式仅用于在 R 中的 sth 之间更改表达式
- c# - C# 串行通信 DLL
- android - 无法在 android 模拟器中打开开发菜单(RN 0.61.2 使用 CLI)
- flutter - Flutter,如何处理 textController