以字节为单位获取远程文件的大小? (没有 content-size)

Getting the size of a remote file in bytes? (without content-size)

我想尽可能简单地获取远程文件的字节大小。

问题是现在很多服务器不在 headers 中发送 content-size 参数

curl -Iwget --spiderwget --server-response都给我详细的headers,但是没有关于内容的大小。

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

只有returns这个:

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

所以我想我可以像这样解决它:

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

确实有效。但是我觉得我下载文件本身并写入我的机器有点荒谬。

我想有更好的方法,比如 curl 可以直接从内存中获取文件大小,或者只获取输出长度 bash 以字节为单位。

content-size header 不保证在每个响应中。所以你能做的最好的事情可能是,如果可用,请使用 content-size,如果不可用,请调用 curl 来下载和评估远程内容的大小:

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