Чтение нижнего колонтитула файла Gzip с помощью CURL или WGET - PullRequest
0 голосов
/ 29 августа 2018

У меня есть gzip-файл на веб-сервере. Я хочу скачать файл, только если на диске достаточно места для его распаковки. Можно ли узнать размер распаковки перед загрузкой файла?

Распакованный размер кодируется в нижнем колонтитуле файла gzip [1] . Мы можем извлечь распакованный размер с помощью следующей команды

gzip -l

Но файл необходимо скачать. Я хочу избежать загрузки файла, если бы я знал размер распакованного файла.

1 Ответ

0 голосов
/ 29 августа 2018

Вы можете взломать свой путь с помощью заголовка HTTP Range , но для этого потребуется много запросов http, и ваш сервер должен принять заголовок Range.

  1. Отправьте первый запрос методом HEAD, чтобы выяснить общий размер файла content-length
  2. Отправьте второй запрос с заголовком Range, чтобы получить последние 4 байта файла. Вычислите тезисы байтов, чтобы узнать размер файла
  3. Если на диске достаточно размера (размер файла + размер без сжатия), загрузите полный файл.
...