Получить размер удаленного файла в байтах?(без размера контента) - PullRequest
0 голосов
/ 14 сентября 2018

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

Проблема в том, что в наши дни многие серверы не отправляют параметр content-size в своих заголовках

curl -I, wget --spider и wget --server-response все дают мне подробные заголовки, но ничего о размере содержимого.

curl -Is https://wordpress.com | grep content

возвращает только это:

content-type: text/html; charset=utf-8

Так что, думаю, я мог бы обойти это так:

curl -s https://wordpress.com/ > /tmp/foo; du /tmp/foo | awk '{print $1}'

И это работает . Но мне кажется немного смешным, что я загружаю сам файл и записываю на свой компьютер.

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

1 Ответ

0 голосов
/ 14 сентября 2018

Заголовок размера контента не гарантируется в каждом ответе. Поэтому лучше всего использовать content-size, если доступно, а если нет, позвонить curl, чтобы загрузить и оценить размер удаленного контента:

curl -sL 'https://wordpress.com'  --write-out '%{size_download}\n' --output /dev/null
...