web-dev-qa-db-fra.com

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

Il semble que je ne puisse télécharger que des fichiers dropbox en utilisant Explorer, tels que Chrome et Firefox. Si j'utilise wget pour télécharger, j'obtiendrais un fichier au format html. Pourquoi?

Par exemple, vous pouvez ouvrir ce lien

Vous n'obtiendrez 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 donc possible de télécharger des fichiers Dropbox en utilisant wget plutôt que l'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 n'arrive 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
62
hugemeow

Le lien dans votre question n'est pas le lien vers le fichier, mais un lien vers la page Dropbox de ce fichier.
Si vous souhaitez utiliser wget pour le télécharger, vous devez copier le lien de téléchargement direct dans le menu qui s’affiche lorsque vous cliquez sur le bouton de téléchargement à droite.

Dans mon cas, cela a bien fonctionné. Cependant, il est parfois difficile de télécharger des liens en dehors du navigateur en raison de paramètres autres que le lien lui-même. Les cookies du site sont un élément commun qui n’existe pas lorsque vous copiez simplement le lien.

Essayez ceci cool FF add-on pour obtenir les liens wget corrects

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, laissez simplement votre boîte faire partie de la structure de votre fichier et éliminez le besoin de téléchargements compliqués.
Voir cet article askubuntu.com , et la page de téléchargement/ Dropbox .

17
amotzg

Ajoutez simplement ?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.

Une dernière chose! Si vous voulez enregistrer le fichier ailleurs, utilisez l'option -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"
107
Ismael Segui

Dropbox l'a modifié pour que wget fasse le bon choix et récupère le fichier au lieu du fichier interstitiel.

Utilisez "Partager le lien" pour récupérer le lien direct vers le fichier.

14
Ryan

Vu cette question et pensé que cela peut aider quelqu'un qui tente de télécharger plusieurs fichiers à la fois.

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

1. Installez Curl pour Windows.

2. Placez les différents liens partagés dans un fichier texte (1 par ligne).

3. Ajustez tous les paramètres "? Dl = 0" de votre fichier texte sur "? Dl = 1" et enregistrez.

4. Copiez le script ci-dessous dans un fichier nommé 'geturllist.cmd' (ou à votre choix)

5. Ouvrez une invite CMD et exécutez le script CMD.

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

REMARQUE:
Vous devez avoir les LIENS PARTAGÉS correctement formatés que "Toute personne possédant le lien" peut s'ouvrir. Ce script NE fonctionne PAS avec les liens protégés par mot de passe ou les partages basés sur un identifiant/un courriel Dropbox.}
REMARQUE:
Si le fichier unique ou le groupe de fichiers (zippé automatiquement) dépasse une certaine taille, il échouera en générant une erreur ("Le fichier (Zip) est trop volumineux. Ajoutez-le à votre Dropbox.") Dans ce cas, vous devez procéder comme il est indiqué .. 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 dit 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

2
bshea

Vous obtiendrez quelque chose nommé "fichier" ou un nom étrange ... Renommer ce fichier comme bon vous semble fera l'affaire. Le fichier réellement téléchargé est le fichier que vous vouliez avec un nom étrange et sans l'attribut de type de fichier.

0
Kruno