Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
I can find any relevant section that addresses how many files i can upload in concurrent requests. means if i am using javascript SDK and i trigger 100 files via looping the code that creates a promise for every request. Are there any limits to how many requests i can trigger at a time?
You will need to create one "upload session" per file. Each file can be uploaded in multiple pieces or "chunks". Once you've uploaded all of the chunks for each file, you can commit all of the files at once by using the /files/upload_session/finish_batch endpoint. That will help avoid lock contention.
For each single request to upload a chunk of a file, you can technically upload up to 150 MB. In practice, you'll likely want to use a size smaller than that for the sake of reliability. Additionally, using a smaller size means you won't have to re-upload as much if/when a particular request does fail. For instance, in practice you might want to use a chunk size of 12 MB, but you can experiment to see what size works well for your use case.
There are some limitations to be aware of if you're trying to upload multiple files. I recommend reading the Data Ingress Guide as it covers this in detail:
https://www.dropbox.com/developers/reference/data-ingress-guide
This applies whether or not you're using an official Dropbox SDK.
hmm that means dropbox recommends that if there are alot of files i should upload all those file in a single sesssion and commit all of them once. And to upload those files i should upload in chunks as i need to manage the upload progress Correct?
Second thing, if the above is correct what is the max size of the chunk that is recommended keeping in mind the requests rate limit?
You will need to create one "upload session" per file. Each file can be uploaded in multiple pieces or "chunks". Once you've uploaded all of the chunks for each file, you can commit all of the files at once by using the /files/upload_session/finish_batch endpoint. That will help avoid lock contention.
For each single request to upload a chunk of a file, you can technically upload up to 150 MB. In practice, you'll likely want to use a size smaller than that for the sake of reliability. Additionally, using a smaller size means you won't have to re-upload as much if/when a particular request does fail. For instance, in practice you might want to use a chunk size of 12 MB, but you can experiment to see what size works well for your use case.
One thing more, the "filesUploadSessionFinishBatch" description says
UploadSessionStartArg.close or UploadSessionAppendArg.close needs to be true for the last upload_session/start or upload_session/append:2 call.
Does this mean, if i have 4 files
- image1.jpg
- image2.jpg
- image3.jpg
- image4.jpg
i should set the "UploadSessionAppendArg.close" to true for the last chunk of every file OR set the "UploadSessionAppendArg.close" for the last chunk of the last file i.e "image4.jpg"? considering i will always upload in chunks.
You should set the UploadSessionAppendArg.close to true for the last chunk of every file.
Each file gets its own upload session, and any upload session that you want to finish using filesUploadSessionFinishBatch needs to be "closed" before you can finish it with filesUploadSessionFinishBatch. "Closing" an upload session tells Dropbox that you won't be adding any more data to it.
perfect thanks alot @Greg-DB you have been helpfull here other than
"passing the suggestion for a feature request"
Hi there!
If you need more help you can view your support options (expected response time for a 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!