Dropbox facilite le téléchargement par programmation d'un seul fichier via curl (EX: curl -O https://dl.dropboxusercontent.com/s/file.ext
). C'est un peu plus délicat pour un dossier (dossier de répertoire normal, non zippé). Le lien partagé pour un dossier, par opposition à un fichier, n'est pas lié directement au dossier zippé (Dropbox zippe automatiquement le dossier avant qu'il ne soit téléchargé). Il semblerait que vous pouvez simplement ajouter ?dl=1
à la fin du lien, car cela lancera directement le téléchargement dans un navigateur. Cependant, cela pointe vers un document html intermédiaire qui redirige vers le dossier Zip réel et ne semble pas fonctionner avec curl. Est-il possible d'utiliser curl pour télécharger un dossier via un lien partagé? Je me rends compte que la meilleure solution serait d'utiliser l'API Dropbox, mais pour ce projet, il est important de le garder aussi simple que possible. De plus, la solution doit être intégrée dans un script shell bash.
Cela semble possible avec curl en utilisant le -L
option. Cela force curl à suivre la redirection. De plus, il est important de spécifier un nom de sortie avec une extension .Zip, car la valeur par défaut sera un nom alphanumérique aléatoire sans extension. Enfin, n'oubliez pas d'ajouter le ?dl=1
à la fin du lien. Sans cela, curl n'atteindra jamais la page de redirection.
curl -L -o newName.Zip https://www.dropbox.com/sh/[folderLink]?dl=1
Suivez les redirections (utilisez -L
). Votre problème immédiat est que Curl ne suit pas les redirections.
Définissez un nom de fichier. (Optionnel)
Utilisez l'une de ces commandes:
curl https://www.dropbox.com/sh/AAbbCCEeFF123?dl=1 -O -J -L
Conserver/écrire le nom de fichier distant (-O
, -J
) et suit toutes les redirections (-L
).
.Zip
automatiquement (en fonction du nom du dossier).?dl=0
à ?dl=1
(voir les commentaires).OU:
curl https://www.dropbox.com/sh/AAbbCCEeFF123?dl=1 -L -o [filename]
Suivez la redirection (-L
) et définit un nom de fichier (-o
) de votre choix.
REMARQUE: en utilisant le -J
drapeau en général:
AVERTISSEMENT: exercez une utilisation judicieuse de cette option, en particulier sous Windows. Un serveur non autorisé pourrait vous envoyer le nom d'un DLL ou autre fichier qui pourrait éventuellement être chargé automatiquement par Windows ou un logiciel tiers.
Veuillez consulter: https://curl.haxx.se/docs/manpage.html#OPTIONS (Voir: - O , - J , - L , - o ) pour plus.