Obtenez Création de fichier Date sur HTTP
-
29-09-2019 - |
Question
Étant donné un fichier sur un serveur Web (par exemple, http://foo.com/bar.zip -> accessible uniquement via HTTP), est-il possible d'obtenir les attributs de date (par exemple, la date [créé, modifié]) sans avoir à télécharger l'intégralité de l'archive en premier lieu
En ce moment, je télécharger l'archive et lire les attributs d'un programme. Le problème est que l'archive est des dizaines de MiB il semble comme un gaspillage de ressources pour télécharger la chose entière et finissent par la lecture de seulement quelques octets d'information.
Je me rends compte que la bande passante est pratiquement libre, mais je ne aime pas être inutile dans tous les cas.
La solution
Essayez de lire dernière modification d'en-tête
Autres conseils
Assurez-vous d'utiliser une requête HTTP HEAD au lieu d'une requête HTTP GET pour lire les en-têtes HTTP seulement. Si vous faites un HTTP GET, vous téléchargerez néanmoins tout le fichier, même si vous décidez simplement d'inspecter les en-têtes HTTP.
Juste pour des raisons de simplicité, voici une compilation des réponses existantes (parfait) de @ihorko et @ JanThomä, qui utilise curl. Autre option sont également disponibles, bien sûr, mais voici une réponse pleinement fonctionnelle.
CURL avec l'option -I
:
-I, --head
(HTTP / FTP / FILE) Fetch le seul en-tête HTTP! HTTP-serveurs disposent de la commande HEAD qui utilise pour obtenir ce rien que l'en-tête d'un document. Lorsqu'il est utilisé sur un fichier FTP ou un fichier, affiche papillotes la taille du fichier et de dernière modification seulement.
En outre, l'option -s
est bien ici:
-s, --silent
Le mode silencieux ou silencieux. Ne pas afficher la barre de progression ou les messages d'erreur. Rend muet Curl. Il sera toujours sortie les données que vous demandez, peut-être même à la borne / stdout à moins que vous redirigez il.
Par conséquent, quelque chose comme ça ferait l'affaire:
curl -sI http://foo.com/bar.zip | grep 'Last-Modified' | cut -d' ' -f 2-