Pregunta

Dado un archivo en un servidor web (por ejemplo, http://foo.com/bar.zip -> sólo se puede acceder a través de HTTP), ¿hay alguna manera de obtener los atributos de fecha (por ejemplo, la fecha [creados, modificados]) sin necesidad de descargar el archivo completo en el primer lugar

En este momento, descargar el archivo y leer los atributos mediante programación. El problema es que el archivo es de decenas MiB por lo que parece un desperdicio de recursos para descargar toda la cosa y terminar la lectura de sólo un par de bytes de información.

Me di cuenta que el ancho de banda es prácticamente gratuita, pero no me gusta ser un desperdicio en cualquier caso.

¿Fue útil?

Otros consejos

Asegúrese de utilizar una solicitud HTTP HEAD en lugar de una petición HTTP GET para leer sólo los encabezados HTTP. Si lo hace un HTTP GET, se descarga el archivo completo, sin embargo, incluso si decide sólo para inspeccionar la cabeceras HTTP.

Sólo por el bien de la simplicidad, he aquí una recopilación de las respuestas (perfecto) existentes desde @ihorko y @ JanThomä, que los usos rizo. Otra opción están disponibles también, por supuesto, pero aquí es una respuesta totalmente funcional.

Uso rizo con la opción -I:

  

-I, --head
  (HTTP / FTP / ARCHIVO) Recuperar la única cabecera HTTP-! HTTP-servidores cuentan con la CABEZA orden que utiliza este para obtener nada más que la cabecera de un documento. Cuando se utiliza en un archivo de FTP o archivo, muestra rizar el tamaño del archivo y última modificación solamente.

Además, la opción -s es agradable aquí:

  

-s, --silent
  Silencio o modo silencioso. No mostrar barra de progreso o mensajes de error. Hace Curl mudo. Éste seguirá salida de los datos que pide, potencialmente, incluso a la terminal / salida estándar a menos que redirigirlo.

Por lo tanto, algo como esto haría el truco:

curl -sI http://foo.com/bar.zip | grep 'Last-Modified' | cut -d' ' -f 2-
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top