Download Folder including Subfolder via wget from Dropbox link to Unix Server Download Folder including Subfolder via wget from Dropbox link to Unix Server unix unix

Download Folder including Subfolder via wget from Dropbox link to Unix Server


This help article documents some parameters you can use to get different behaviors from Dropbox shared links:

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

For example, using this link:

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

We can use the dl parameter to get a direct download. Using curl, we can download it as such:

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

(The -L is necessary in order to follow redirects.)

Or, with wget, something like:

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


You can use --content-disposition with wget too.

wget https://www.dropbox.com/sh/igoku2mqsjqsmx1/AAAeF57DR2ou_nZGC4JPoQKfa --content-disposition

It will auto-detect the folder name as the zip filename.


Currently, you're probably better off creating an app that you don't publish, which can either access all your files, or just a dedicated app folder (safer). Click the generate API token button about halfway down the app's settings page, and store it securely! You can then use the dedicated download or zip download API calls to get your files from anywhere like so:

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

Adding your token as an environment variable makes it easier & safer to type/script these operations. If you're using BASH, and you have ignorespace in your $HISTCONTROL you can just type + paste your key with a leading space so it's not saved in your history. For frequent use, save it in a file with 0600 permissions that you can source, as you would an SSH key.

 export MY_DROPBOX_API_TOKEN='...'