Est-il possible d'obtenir la taille d'un fichier distant sans le télécharger?

5

Est-il possible d'obtenir la taille d'un fichier distant sans le télécharger? Le fichier est sur HTTP, pas sur (S) FTP. Je souhaite le savoir car je souhaite télécharger quelque chose alors que je suis connecté avec un forfait sans fil 3G limité et je ne souhaite pas utiliser toute ma bande passante en une seule fois. Je n'ai pas du tout accès au serveur. Donc, je ne peux rien faire côté serveur. Je suis sous Mac OS X. Les solutions utilisant la ligne de commande sont un avantage, mais pas une nécessité.

À propos, le fichier spécifique pour lequel je veux des informations est le téléchargement MP3 à partir de ce site .

Wuffers
la source

Réponses:

4

Vous pouvez le faire en récupérant l'en- Content-Lengthtête, tant qu'il s'agit de HTTP.

Une façon de faire ceci en ligne de commande est avec curl, par exemple:

chris@chris-laptop:~$ curl -I -L http://www.fakkelbrigade.eu/chris/movies/drosovol1_final_h264_download.mp4
HTTP/1.1 200 OK
Date: Tue, 25 Jan 2011 22:22:51 GMT
Server: Apache/2.2.16 (Debian)
Last-Modified: Tue, 11 Jan 2011 16:32:52 GMT
ETag: "3aa003-1b0c3479-49994a2c6f500"
Accept-Ranges: bytes
Content-Length: 453784697
Content-Disposition: attachment
Content-Type: application/octet-stream

Content-Length est en octets.

Matthieu Cartier
la source
Aucun problème! Heureux que tu aies trouvé une solution :)
Matthieu Cartier
1
addons.mozilla.org/en-us/firefox/addon/live-http-headers Il y a aussi cet addon qui pourrait vous aider si vous êtes un utilisateur de Firefox.
Jeshizaemon
1

Vous pouvez émettre des HTTP HEADdemandes pour obtenir les seules données d'en-tête. Content-Lengthc'est ce que tu veux.

$ telnet superuser.com 80
Trying 64.34.119.12...
Connected to superuser.com.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 302 Found
Content-Length: 141
Location: http://stackexchange.com
Date: Tue, 25 Jan 2011 22:21:28 GMT
Connection: close
Daniel Beck
la source
0

Cela dépend de la configuration du serveur et du fichier. Avec la plupart des fichiers, le serveur l'envoie dans les en-têtes, mais il peut s'agir d'un fichier dynamique et par conséquent, il ne le sait pas (et votre navigateur ne peut pas deviner combien de temps cela prendra.

tobylane $ telnet stackexchange.com 80

Essayer 64.34.119.12 ...

Connecté à stackexchange.com.

Le caractère d'échappement est '^]'.

GET /

HTTP / 1.1 302 trouvé

Lieu: http://stackexchange.com

Date: mardi 25 janvier 2011 22:01:22 GMT

Connexion: fermer

Je ne suis pas certain de la qualité d'une demande (obtenir / travailler sur d'autres sites), mais j'espère que cela aidera.

tobylane
la source
1
Pour quels "autres sites" a-t-il fonctionné? Il serait plus utile d'afficher ceux pour lesquels il a travaillé au lieu de ceux pour lesquels il n'a pas fonctionné.
Wuffers
Aussi, juste un pourboire. Vous pouvez ainsi indenter la sortie code / console de cette manière de quatre espaces pour la rendre préformatée et beaucoup plus lisible.
Wuffers