Take Your Search Game to the Next Level with Dropbox Dash 🚀✨ Curious how it works? Ask us here!
Forum Discussion
new_to_dreamland
3 years agoExplorer | Level 3
Using dropbox as a repository for an application
Hello all,
My team and I have some questions around the API features offered by Standard/Advanced plan.
Currently, we are thinking to build an application where the end users can upload documents (pdf/photos, etc.) to our app and Dropbox will be the storage.
We are planning something like this below.
End users(approx. 1000 users)>>> App using DBX platform>>> (The App accesses Dropbox on behalf of all end users and takes actions on each user's folders and files via API)>>> DropBox
I have confirmed that it is possible for an end user to upload files to the app with a chat agent...
I also checked in the API documentation and found out there are many actions beside “upload”, so end users can edit/delete/replace a new file as they like. Seeing "Take actions on files and folders—like creating, reading, editing, moving, and deleting—with the Dropbox Files API..." from https://www.dropbox.com/developers, I feel like it is possible to do what we are planning to do...
Does anyone have done somethig similar? Is this use case rare?
6 Replies
Sort By
- Greg-DB
Dropbox Staff
As you found, Dropbox does offer an API you can use for listing, uploading, and downloading files, among other operations, so that is possible.
I see you already found the developers site. These guides in particular may be useful:
- https://www.dropbox.com/developers/reference/getting-started
- https://developers.dropbox.com/dbx-file-access-guide
One point of clarification though, as it's not clear to me from your description, is whether you mean to have all of your end-users each connecting to your one Dropbox account, or each to their own Dropbox accounts. The API was designed with the intention that each user would link their own Dropbox account, in order to interact with their own files. While it is technically possible to always connect to just one account for all users, we do not officially support this, for various technical and security reasons.
- new_to_dreamlandExplorer | Level 3
Thank you for the reply.
I was thinking all of end users who are going to use our app will not need a dropbox account, and they can upload files via dropbox connecting to our dropbox account through the app. In such case, as you mentioned, it is technically possible but not officailly supported? Am I correct?
Meaning that if I want to create an app and use Dropbox as the storage, the end users must have a dropbox account to upload files?
If the intention was to have the app end users to login to their dropbox account and interact with their own files, can the users just use free basic account?
- ЗдравкоLegendary | Level 20
new_to_dreamland wrote:...
I was thinking all of end users who are going to use our app will not need a dropbox account, and they can upload files via dropbox connecting to our dropbox account through the app. In such case, as you mentioned, it is technically possible but not officailly supported? Am I correct?
...
Hi new_to_dreamland,
Yes, you are correct. For a standalone local application it's never good idea to use connection to other Dropbox client account (in particular your clients to use your connection) directly. Once such a connection is established, connected application (and the user driving it) has unlimited access to all resources accessible for the application in your account. While you can use application folder to limit account access (access you clients have), it's impossible to restrict access between clients resources. That can be serious security risk! 👹 That's why in spite technically possible, it's neither supported nor a good idea at all (it's your responsibility for possible harm if you decide to use it).
new_to_dreamland wrote:...
Meaning that if I want to create an app and use Dropbox as the storage, the end users must have a dropbox account to upload files?
...
It's not a must but possible way. Actually you can let user access safely your account, but not directly using Dropbox API connection. If you build your server side application (or part of the application), then the server code (build and driven by you) will provide access to the account and your users will be able access there according the application design (on your strict control). In such a way users don't need any Dropbox account at all. 😉
new_to_dreamland wrote:...
If the intention was to have the app end users to login to their dropbox account and interact with their own files, can the users just use free basic account?
The users can have whatever account that satisfies their needs (including free one if suitable). To interact with your account content you and your users should have shared folders in such case. Take in mind that shared content counts to all accounts it's shared to (not only to the owner's account - Dropbox drawback). So, your clients should have enough capacity to keep least the shared content in their accounts. Good planning/designing the sharing process may decreases needed capacity. For instance if your users need access to different content (eventually overlapping partially), instead of sharing one big block of data to everyone, you can "dissect" the initial data block and share only needed data pieces to one or more users that actually need them. So, you can avoid users complain about capacity overload and to decrease users account requirements. 🙂 Advantage of such a solution is that you don't need server side application (or again part of it) and your application can work entirely client side without security compromise.
Hope this gives direction.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.6,000 PostsLatest Activity: 15 hours ago
If 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!