You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.
Forum Discussion
DavidM27
5 years agoExplorer | Level 4
Download shared file from shared link
Hello,
I'm building a web app using Dropbox API, that app may be use to share some files to people that does not have a dropbox, so I created a share link via the API and then I want those people to be able to download it directly from the app.
I need the file to be download in the app because the file has to be manipulated before being downlodable by the uer.
What I tried was to use the share link and make an XHR request with the share link replacing the query parameter ?dl=0 by ?dl=1.
Buty obvioulsy this can not work because dropbox does not let me download it because of the CORS policy.
Can you tell if it is possible to download a file without being connected to dropbox and directly from my web app ?
Unfortunately I don't have a good solution to offer here. Using a shared link with the parameter modification is the best way to share read-only access to a file when the recipient doesn't have a Dropbox account. As you found though, these can't be requested programmatically in browser JavaScript due to the CORS policy.
Alternatively, you could have your server do the download first, and then pass the contents down to end-user's browser instead. This would come at the expense of extra server bandwidth consumption though.
- Greg-DBDropbox Staff
Unfortunately I don't have a good solution to offer here. Using a shared link with the parameter modification is the best way to share read-only access to a file when the recipient doesn't have a Dropbox account. As you found though, these can't be requested programmatically in browser JavaScript due to the CORS policy.
Alternatively, you could have your server do the download first, and then pass the contents down to end-user's browser instead. This would come at the expense of extra server bandwidth consumption though.
- dgtal boxExplorer | Level 3
How can I make my server download first?
const file = createWriteStream(filePath);
https.get(fileURL, response => {
response.pipe(file);
file.on('finish', () => {
file.close();
resolve();
});
}).on('error', err => {
fs.unlink(filePath, () => reject(err)); // Delete the file asynchronously on error
});
The code works for other content links. but doesn't works for the dropbox link.
I tired dl=1, raw=1. But still it doesn't work.
All i got everytime are invalid files.- ЗдравкоLegendary | Level 20
dgtal box wrote:...
All i got everytime are invalid files.Hm...🤔 What is that what you got? 🧐 Is it the shared link itself? Or... not exactly. 🙂 Where you copy it from in gedit?
If you want, you can clarify what's going on by posting some code snippet that'll let the issue reproduction. So, likely will be more clear where is your error. The code should use either calls to Dropbox SDK or direct HTTP posts using fetch or XMLHttpRequest (or the HTTP requests themself), so to be reproducible. Mask any private info like different tokens.
- DavidM27Explorer | Level 4
Thank you Greg for your reply.
As a workaround I tried to use the dl.dropboxusercontent.com redirect link but it does work only with file not with folder... So we'll have to find another solution.- eliotcoleExplorer | Level 4
Hi, DavidM27 , you could use the cloud API functionality of the various cloud based automation programs out there like Power Automate (Flow), automate.io, zapier, etc.
There might be a limit for the file size (Google used to max out at 50MB) either on Dropbox or the other end of the equation.
Equally, instead of open-ended download, you could have your users use a local folder with something like Dropbox, and create an app to copy it to their specific folder, which will then sync to their local folder.
( this seems like a valid use of all the bricks in this lego set ;-) ... )
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,888 PostsLatest Activity: 5 hours agoIf you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!