鉴于网络服务器上的文件(例如,http://foo.com/bar.zip - >只能通过HTTP访问),有没有办法获取日期属性(例如,日期[创建,修改])而无需下载整个存档首先是什么?
现在,我下载存档并以编程方式读取属性。麻烦的是存档是几十个MiB,因此下载整个内容并最终只读取几个字节的信息似乎浪费资源。
我意识到带宽实际上是免费的,但我不喜欢在任何情况下浪费。
答案 0 :(得分:8)
尝试从标题
中读取Last-Modified答案 1 :(得分:8)
请务必使用HTTP HEAD请求而不是HTTP GET请求来仅读取HTTP标头。如果您执行HTTP GET,即使您决定只检查HTTP标头,也会下载整个文件。
答案 2 :(得分:3)
为了简单起见,这里是@ihorko和@JanThomä使用curl的现有(完美)答案的汇编。当然,其他选项也是可用的,但这是一个功能齐全的答案。
将curl与-I
选项一起使用:
<强>
-I, --head
强>
(HTTP / FTP / FILE)仅获取HTTP标头! HTTP服务器具有HEAD命令,它只用于获取文档的标题。在FTP或FILE文件上使用时,curl仅显示文件大小和上次修改时间。
此外,-s
选项在这里很不错:
<强>
-s, --silent
强>
无声或安静模式。不显示进度表或错误消息。使卷曲静音。它仍会输出您要求的数据,甚至可能输出到终端/标准输出,除非您重定向它。
因此,这样的事情可以解决问题:
curl -sI http://foo.com/bar.zip | grep 'Last-Modified' | cut -d' ' -f 2-