Force wget à utiliser le nom de fichier réel

42

Lorsque vous utilisez wget dans un script pour télécharger des fichiers depuis Google Docs, le nom du fichier n'est pas conservé. Par exemple:

wget 'http://spreadsheets.google.com/pub?key=pyj6tScZqmEfbZyl0qjbiRQ&output=xls' 

enregistre le fichier sous la forme pub?key=pyj6tScZqmEfbZyl0qjbiRQ au lieu de indicatorhivestimatedprevalence15-49.xls , ce qui est ce que j'obtiens si je clique sur le lien dans un navigateur. Existe-t-il un moyen d'imposer ce comportement de type "navigateur" dans wget ?

    
posée Chinmay Kanchi 10.11.2011 - 01:08
la source

3 réponses

75
wget --content-disposition 'http://spreadsheets.google.com/pub?key=pyj6tScZqmEfbZyl0qjbiRQ&output=xls'

fera le tour pour vous.

Ce n'est toujours pas complètement implémenté et semble bogue un peu parfois, donc ce n'est pas l'option par défaut dans wget , utilisez-la à vos risques et périls.

    
réponse donnée Bruno Pereira 10.11.2011 - 01:19
la source
0

Le lien Google Docs indique réellement à un script sur le serveur à exécuter, analysant cela dans le fichier souhaité. Le fichier, à ma connaissance, n’existe jamais sur le serveur dans le formulaire els, mais il est généré lors de l’exécution lorsque vous le demandez. Ainsi, il n'y a rien à obtenir pour wget.

Pour télécharger le fichier, vous devez utiliser l’API google lien .

    
réponse donnée Ethan 10.11.2011 - 01:14
la source
0

Vous pouvez essayer d'utiliser curl pour télécharger et conserver le nom de fichier d'origine:

curl -OJL ${your_url}
  • -O pour le nom distant
  • -J pour remote-header-name
  • -L pour l'emplacement

voir les options de ligne de commande curl .

    
réponse donnée Noam Manos 02.08.2018 - 11:29
la source

Lire d'autres questions sur les étiquettes