通过HTTP获取文件创建日期

时间:2010-12-01 16:35:19

标签: http language-agnostic attributes download file-attributes

鉴于网络服务器上的文件(例如,http://foo.com/bar.zip - >只能通过HTTP访问),有没有办法获取日期属性(例如,日期[创建,修改])而无需下载整个存档首先是什么?

现在,我下载存档并以编程方式读取属性。麻烦的是存档是几十个MiB,因此下载整个内容并最终只读取几个字节的信息似乎浪费资源。

我意识到带宽实际上是免费的,但我不喜欢在任何情况下浪费。

3 个答案:

答案 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-