以字节为单位获取远程文件的大小? (没有 content-size)
Getting the size of a remote file in bytes? (without content-size)
我想尽可能简单地获取远程文件的字节大小。
问题是现在很多服务器不在 headers 中发送 content-size
参数
curl -I
、wget --spider
和wget --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
我想尽可能简单地获取远程文件的字节大小。
问题是现在很多服务器不在 headers 中发送 content-size
参数
curl -I
、wget --spider
和wget --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