94 votes

comment télécharger des fichiers dropbox en utilisant la commande wget ?

Il semble que je ne puisse télécharger les fichiers dropbox qu'en utilisant un explorateur tel que chrome et firefox. Si j'utilise wget pour télécharger, j'obtiens un fichier au format html. Pourquoi ?

Par exemple, vous pouvez ouvrir ce lien

Vous n'obtenez pas le contenu de ce fichier, pourquoi ? Ce qui suit fait partie de test.txt pour le télécharger, ce n'est pas du tout le contenu de test.txt.

Est-il possible de télécharger des fichiers Dropbox à l'aide de l'application wget plutôt qu'explorateur ?

document.observe('script:loaded', function() {
SharingModel.init('test\x2etxt', Util.from_json('\x7b\x22item\x5fid\x22\x3a\x20\x22\x22\x2c\x20\x22secure\x5fhash\x22\x3a\x20\x22\x22\x2c\x20\x22subpath\x22\x3a\x20\x22\x22\x2c\x20\x22tkey\x22\x3a\x20\x22mx9eqve5l2ipgyk\x22\x7d'))
SharingModel.init_file()
$('emsnippet-9911dfc627e1d541').innerHTML = 'test\x2etxt'.em_snippet(50, 0.750).escapeHTML();
$('emsnippet-add7879f5d805012').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
$('emsnippet-981ac0639529f983').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
FilePreview.init_text('https\x3a\x2f\x2fdl\x2edropbox\x2ecom\x2fs\x2fmx9eqve5l2ipgyk\x2ftest\x2etxt', 0)                        });
                    } else if (window.jQuery) {
jQuery(function () {
SharingModel.init('test\x2etxt', Util.from_json('\x7b\x22item\x5fid\x22\x3a\x20\x22\x22\x2c\x20\x22secure\x5fhash\x22\x3a\x20\x22\x22\x2c\x20\x22subpath\x22\x3a\x20\x22\x22\x2c\x20\x22tkey\x22\x3a\x20\x22mx9eqve5l2ipgyk\x22\x7d'))
SharingModel.init_file()
$('emsnippet-9911dfc627e1d541').innerHTML = 'test\x2etxt'.em_snippet(50, 0.750).escapeHTML();
$('emsnippet-add7879f5d805012').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
$('emsnippet-981ac0639529f983').innerHTML = 'test\x2etxt'.em_snippet(20, 0.750).escapeHTML();
FilePreview.init_text('https\x3a\x2f\x2fdl\x2edropbox\x2ecom\x2fs\x2fmx9eqve5l2ipgyk\x2ftest\x2etxt', 0)                        });
                    } 

Je ne peux pas obtenir test.txt avec la commande

wget https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.tx

ls -l 
-rw-rw-r-- 1 mirror mirror  30K Sep  6 15:01 test.txt

153voto

Ismael Segui Points 1499

Il suffit d'ajouter ?dl=1 à la fin du lien ! Par exemple : https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1

Cela devrait vous permettre de récupérer le fichier en question sans rien ajouter au fichier.

Encore une chose ! Si vous voulez enregistrer le fichier ailleurs, utilisez la fonction -O comme ceci

wget -O /root/Desktop/test.txt "https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1"

Et si vous voulez avoir un peu d'interface graphique vous pouvez utiliser zenity pour marquer l'emplacement où le fichier sera téléchargé !

Voici un exemple de code :

#!/bin/bash
dir=$(zenity --file-selection --directory)
wget -O $dir/test.txt "https://www.dropbox.com/s/mx9eqve5l2ipgyk/test.txt?dl=1"

24voto

amotzg Points 939

Le lien dans votre question n'est pas le lien vers le fichier, c'est un lien vers la page Dropbox de ce fichier.

Si vous voulez utiliser wget pour le télécharger, vous devez copier le lien vers le téléchargement direct à partir du menu qui apparaît lorsque vous appuyez sur le bouton de téléchargement à droite.

Dans mon cas, cela a bien fonctionné.

Cependant, il arrive que les problèmes de téléchargement de liens depuis l'extérieur du navigateur soient liés à des paramètres autres que le lien lui-même. Un élément commun qui n'existe pas lorsque vous copiez simplement le lien sont les cookies du site.

Essayez ceci cool add-on FF pour obtenir le bon wget liens

Et aussi, surtout si nous parlons d'un poste de travail connu et non d'un poste occasionnel, vous pouvez bien sûr installer le client Dropbox. Ce sera le moyen le plus simple, il suffit de laisser votre boîte faire partie de votre structure de fichiers et d'éliminer le besoin de téléchargements compliqués.

Voir ceci askubuntu.com post et le Dropbox page de téléchargement.

16voto

Ryan Points 161

Dropbox l'a modifié de façon à ce que wget fera ce qu'il faut et récupérera le fichier au lieu de l'interstitiel.

Utilisez "Lien de partage" pour récupérer le lien direct vers le fichier.

3voto

B. Shea Points 954

J'ai vu cette question et j'ai pensé que cela pourrait aider quelqu'un qui essaie de télécharger plusieurs fichiers à la fois.

Voici un petit CMD/Batch script Windows que vous pouvez utiliser.
Il peut facilement être adapté pour fonctionner sous un Shell Bash (Mac/Linux/etc).
Il utilise CURL . WGET devrait également fonctionner avec quelques ajustements mineurs .

  1. Installer Curl pour Windows.
  2. Mettez les liens individuels SHARED dans un fichier texte (1 par ligne).
  3. Remplacez tous les paramètres "?dl=0" de votre fichier texte par "?dl=1" et enregistrez.
  4. Copiez le script ci-dessous dans un fichier appelé 'geturllist.cmd' (ou votre choix).
  5. Ouvrez une invite CMD et exécutez le CMD script.

Les fichiers téléchargés apparaîtront dans le répertoire de travail actuel à partir duquel vous avez exécuté le script.

NOTE :
Vous devez avoir des LIENS PARTAGÉS correctement formatés que "Toute personne ayant le lien" peut ouvrir. Ce script ne fonctionne PAS avec des liens protégés par mot de passe ou des partages basés sur un login/email Dropbox.
NOTE :
Si le fichier unique ou le groupe de fichiers (zippés automatiquement) dépasse une certaine taille, il échouera avec une erreur ("Le fichier (zip) est trop grand. Veuillez l'ajouter à votre Dropbox."). Dans ce cas, vous devez faire comme il est dit ce script ne fonctionnera pas car le lien de partage n'est pas directement téléchargeable.

Exemple de fichier texte :
("RandomShareCharacters/Here" sera remplacé par ce qui est indiqué dans le lien de partage)

 https://www.dropbox.com/sh/RandomShareCharacters/Here?dl=1
 https://www.dropbox.com/sh/RandomShareCharacters/Here?dl=1
 https://www.dropbox.com/sh/RandomShareCharacters/Here?dl=1

geturllist.cmd :

@echo off
set count=0
setlocal ENABLEDELAYEDEXPANSION
IF [%1]==[] GOTO BLANK
SET PARAMETER=%1
SET _PARAMETER=%PARAMETER:~0,2%

IF [%1]==[/?] GOTO HELP
IF [%1]==[--help] GOTO HELP
IF %_PARAMETER%==-h GOTO HELP

IF EXIST %1 (

  for /f "delims=" %%u in (%1) do (

      set /a count=count+1
      curl -kL "%%u" -O -J

      REM For other share sites:
      REM (ZIP EXAMPLE) if no filename type header sent:
      REM > curl -kL "%%u" -o "!count!.zip"
      REM > echo "!count!.zip"
      REM Will download file(s) called 1.zip, 2.zip, etc.
      )
  ) ELSE (
GOTO BLANK
)
GOTO DONE

:HELP
ECHO.
ECHO    Usage:
ECHO.
ECHO    geturllist [path]\[filename]
ECHO.
ECHO.
ECHO    Required Parameters:
ECHO.
ECHO    [filename]  A text file with one url per line
ECHO    -h      Help
ECHO.
GOTO DONE

:BLANK
ECHO.
ECHO Error: no input file found

:HELPMSG
ECHO.
ECHO Try -h for Help

:DONE
ECHO.
ECHO Exiting.
ECHO.

Exemple d'utilisation :

geturllist.cmd X:\somepath\dropbox.txt

-1voto

Hüseyin Yağlı Points 267

La méthode la plus simple et la plus sûre pour ce type de téléchargements consiste à utiliser les outils de développement de Google Chrome.

  • Appuyez sur F12 pour ouvrir les outils de développement

  • Allez dans l'onglet réseau

  • Cliquez sur le lien de téléchargement pour lancer le téléchargement

  • Trouvez l'événement de téléchargement dans les événements du réseau

  • Faites un clic droit sur la ligne et sélectionnez "Copier en tant que cURL (bash)" ou Windows si vous le souhaitez.

  • L'url ressemblera à ceci :

      curl "http://yoururl.com/yourfile" -H "Pragma: no-cache" -H "Origin: http://yoururl.com" -H "Accept-Encoding: gzip, deflate" -H "Accept: */*" -H "Cache-Control: max-age=0" -H "Referer: http://yoururl.com/downloadpage" -H "Cookie: e07214fb60a1a; _ga=98987; "
  • Remplacer curl avec wget

  • Remplacer -H "some headers" avec --header="some headers"

  • Ajouter -o paramètre

  • La nouvelle commande ressemblera à ceci :

      wget "http://yoururl.com/yourfile" --header="Pragma: no-cache" --header="Origin: http://yoururl.com" --header="Accept-Encoding: gzip, deflate" --header="Accept: */*" --header="Cache-Control: max-age=0" --header="Referer: http://yoururl.com/downloadpage" --header="Cookie: e07214fb60a1a; _ga=98987; " -o test.txt
  • Collez cela dans votre fenêtre bash

  • Appuyez sur la touche et profitez de votre téléchargement.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X