Вопрос

Учитывая файл на веб -сервере (например, http://foo.com/bar.zip -> Доступно только через HTTP), есть ли способ получить атрибуты даты (например, дата [создан, модифицирован]) без загрузки всего архива в первую очередь?

Прямо сейчас я загружаю архив и читаю атрибуты программно. Проблема в том, что архив - это десятки MIB, поэтому кажется пустой тратой ресурсов, чтобы загрузить все это и в конечном итоге читать всего пару байтов информации.

Я понимаю, что пропускная способность практически бесплатна, но я не люблю быть расточительным в любом случае.

Это было полезно?

Решение

Попробуйте прочитать Последнее изменение от заголовка

Другие советы

Обязательно используйте запрос HTTP Head вместо запроса HTTP GET, чтобы прочитать только заголовки HTTP. Если вы сделаете http get, вы, тем не менее, загрузите весь файл, даже если вы решите просто осмотреть заголовки HTTP.

Просто ради простоты, вот сборник существующих (идеальных) ответов от @ihorko и @Janthomä, в которых используется Curl. Конечно, другие варианты также доступны, но вот полностью функциональный ответ.

Используйте Curl с -I вариант:

-I, --head
(Http/ftp/file) Принесите только HTTP-заголовок! HTTP-серверс включает в себя командную головку, которую он использует, чтобы получить только заголовок документа. При использовании в файле FTP или файла CURL отображает размер файла и только время изменения.

Так же -s вариант здесь хороший:

-s, --silent
Молчаливый или тихий режим. Не показывайте счетчик прогресса или сообщения об ошибках. Делает скручивание немой. Он по -прежнему выведет данные, которые вы запрашиваете, возможно, даже на терминал/stdout, если вы не перенаправляете их.

Следовательно, что -то подобное сделает свое дело:

curl -sI http://foo.com/bar.zip | grep 'Last-Modified' | cut -d' ' -f 2-
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top