web-dev-qa-db-fra.com

Télécharger le dossier, y compris le sous-dossier via wget à partir du lien Dropbox vers le serveur Unix

J'ai un lien Dropbox comme https://www.dropbox.com/sh/w4366ttcz6/AAB4kSz3adZ qui ouvre le site Dropbox habituel avec des dossiers et des fichiers. Existe-t-il une chance de télécharger le contenu complet (tar ou directement en synchronisation) sur une machine unix à l’aide de wget? J'ai vu des billets ici où des fichiers uniques ont été téléchargés, mais je n’ai trouvé aucune réponse à cette question. Il existe une API de Dropbox mais cela ne fonctionne pas sur mon serveur en raison du problème 64 bits sur mon serveur et http://www.dropboxwiki.com/dropbox-addons/dropbox-gallery-download#BASH_Version do pas aussi travailler pour moi .... d'autres suggestions?

10
user2338300

Cet article d'aide décrit certains paramètres que vous pouvez utiliser pour obtenir différents comportements à partir des liens partagés Dropbox:

https://www.dropbox.com/help/201

Par exemple, en utilisant ce lien:

https://www.dropbox.com/sh/igoku2mqsjqsmx1/AAAeF57DR2ou_nZGC4JPoQKfa

Nous pouvons utiliser le paramètre dl pour obtenir un téléchargement direct. En utilisant curl, nous pouvons le télécharger en tant que tel:

curl -L https://www.dropbox.com/sh/igoku2mqsjqsmx1/AAAeF57DR2ou_nZGC4JPoQKfa?dl=1 > download.Zip

(Le -L est nécessaire pour suivre les redirections.)

Ou, avec wget, quelque chose comme:

wget --max-redirect=20 -O download.Zip https://www.dropbox.com/sh/igoku2mqsjqsmx1/AAAeF57DR2ou_nZGC4JPoQKfa
15
Greg

Actuellement, vous êtes probablement mieux loti créer une application que vous ne publiez pas, qui peut accéder à tous vos fichiers ou simplement à un dossier d'application dédié (plus sûr). Cliquez sur le bouton Générer un jeton d'API à mi-chemin de la page des paramètres de l'application et stockez-le en toute sécurité! Vous pouvez ensuite utiliser le téléchargement dédié ou appel de l'API de téléchargement zip s pour obtenir vos fichiers à partir de n'importe où, par exemple:

curl -X POST https://content.dropboxapi.com/2/files/download_Zip \
    --header "Authorization: Bearer $MY_DROPBOX_API_TOKEN" \
    --header 'Dropbox-API-Arg: {"path": "/path/to/directory"}' \
    > useful-name.Zip

L'ajout de votre jeton en tant que variable d'environnement facilite la saisie et la génération de scripts pour ces opérations. Si vous utilisez BASH et que vous avez ignorespace dans votre $HISTCONTROL, vous pouvez simplement taper + coller votre clé avec un espace de début afin qu'il ne soit pas enregistré dans votre historique. Pour une utilisation fréquente, enregistrez-le dans un fichier doté d'autorisations 0600 que vous pouvez source, comme vous le feriez avec une clé SSH.

 export MY_DROPBOX_API_TOKEN='...'
1
Walf

Oui, vous pouvez, comme c'est joli, suivre les étapes ci-dessous 

Tout d’abord, obtenez le lien de partage Dropbox. Cela ressemblera à ceci https://www.dropbox.com/s/ad2arn440pu77si/test.txt

Ajoutez ensuite “? Dl = 1” à la fin de cette URL et un “-O nom_fichier” pour obtenir le résultat suivant: wget https://www.dropbox.com/s/ad2arn440pu77si/test .txt? dl = 1 -O test.txt

Maintenant, vous pouvez facilement obtenir des fichiers sur votre linux.

0
Guru