Lorsque vous utilisez wget
dans un script pour télécharger des fichiers à partir de 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 le nom pub?key=pyj6tScZqmEfbZyl0qjbiRQ
au lieu de indicatorhivestimatedprevalence15-49.xls
, ce que je reçois si je clique sur le lien dans un navigateur. Existe-t-il un moyen d'appliquer ce comportement "semblable à un navigateur" dans wget
?
wget --content-disposition 'http://spreadsheets.google.com/pub?key=pyj6tScZqmEfbZyl0qjbiRQ&output=xls'
fera le tour pour vous.
Il n’a toujours pas été complètement implémenté et semble parfois dérégler un peu, c’est donc l’option par défaut de wget
, utilisez-la à vos risques et périls.
Vous pouvez essayer d'utiliser curl pour télécharger et conserver le nom de fichier d'origine:
curl -OJL ${your_url}
Le lien Google Documents indique réellement à un script sur le serveur de s'exécuter, en l'analysant dans le fichier souhaité. À ma connaissance, le fichier n'existe pas encore sur le serveur sous la forme els, mais il est généré au moment de l'exécution lorsque vous le demandez. Ainsi, il n'y a rien pour wget à obtenir.
Pour télécharger le fichier, vous devez utiliser l'API Google http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#DownloadingDocs/ .