Domanda

Dato un file su un server web (ad esempio, http://foo.com/bar.zip -?> accessibile solo tramite HTTP), non v'è alcun modo per ottenere gli attributi di data (ad esempio, la data di [creati, modificati]) senza scaricare l'intero archivio in primo luogo

In questo momento, mi scaricare l'archivio e leggere gli attributi di programmazione. Il problema è che l'archivio è decine di MiB così sembra uno spreco di risorse per scaricare l'intera cosa e finiscono leggendo solo un paio di byte di informazioni.

Mi rendo conto che la larghezza di banda è praticamente gratuito, ma non mi piace essere uno spreco, in ogni caso.

È stato utile?

Soluzione

Provate a leggere Last-Modified dall'intestazione

Altri suggerimenti

Assicurarsi di utilizzare una richiesta HTTP HEAD invece di una richiesta HTTP GET per leggere solo le intestazioni HTTP. Se fate un HTTP GET, si scarica l'intero file, tuttavia, anche se si decide solo per ispezionare il intestazioni HTTP.

Solo per il gusto di semplicità, ecco una raccolta di (perfetti) risposte da @ihorko e @ JanThomä esistenti, che utilizza ricciolo. Altra opzione sono disponibili anche, naturalmente, ma qui è una risposta pienamente funzionale.

Usa ricciolo con l'opzione -I:

  

-I, --head
  (HTTP / FTP / FILE) Fetch l'unico HTTP-intestazione! HTTP-server dotati del comando head cui questo uso per ottenere altro che l'intestazione di un documento. Quando viene utilizzato su un file FTP o FILE, ricciolo mostra la dimensione del file e l'ultima volta di modifica solo.

Inoltre, l'opzione -s è bello qui:

  

-s, --silent
  modalità silenziosa silenziosa o. Non mostrare barra di avanzamento o di messaggi di errore. Rende Curl mute. Sarà ancora l'output dei dati che chiedete per, potenzialmente anche al terminale / stdout a meno che reindirizza.

Quindi, qualcosa di simile sarebbe fare il trucco:

curl -sI http://foo.com/bar.zip | grep 'Last-Modified' | cut -d' ' -f 2-
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top