A while ago, we summarized all the possible ways to mount Google drive locally as a virtual file system and access the files stored in the google drive from your Linux operating system. Today, we are going to learn to mount Dropbox folder in your local file system using dbxfs utility. The dbxfs is used to mount your Dropbox folder locally as a virtual filesystem in Linux and Unix-like operating systems. While it is easy to install Dropbox client in Linux, this approach slightly differs from the official method. It is a command line dropbox client and requires no disk space for access. The dbxfs application is free, open source and written in Python.
Install dbxfs in Linux
The dbxfs officially supports Linux and Mac OS. However, it should work on any POSIX system that provides a FUSE-compatible library or has the ability to mount SMB shares. Since it is written for Python 3.5, it can installed using pip3 package manager. Refer the following guide if you haven't installed PIP yet.
And, install FUSE library as well.
On Debian-based systems, run the following command to install FUSE:
$ sudo apt install libfuse2
$ sudo dnf install fuse
Once you installed all required dependencies, run the following command to install dbxfs utility:
$ pip3 install dbxfs
Mount Dropbox folder locally Using Dbxfs In Linux
Create a mount point to mount your dropbox folder in your local file system.
$ mkdir ~/mydropbox
Then, mount the dropbox folder locally using dbxfs utility as shown below:
$ dbxfs ~/mydropbox
You will be asked to generate an access token:
To generate an access token, just navigate to the URL given in the above output from your web browser and click Allow to authenticate Dropbox access. You need to log in to your dropbox account to complete authorization process.
A new authorization code will be generated in the next screen. Copy the code and head back to your Terminal and paste it into cli-dbxfs prompt to finish the process.
You will be then asked to save the credentials for future access. Type Y or N whether you want to save or decline. And then, you need to enter a passphrase twice for the new access token.
Finally, click Y to accept "/home/username/mydropbox" as the default mount point. If you want to set different path, type N and enter the location of your choice.
All done! From now on, you can see your Dropbox folder is locally mounted in your filesystem.
Change Access Token Storage Path
By default, the dbxfs application will store your Dropbox access token in the system keyring or an encrypted file. However, you might want to store it in a gpg encrypted file or something else. If so, get an access token by creating a personal app on the Dropbox developers app console.
Once the app is created, click Generate button in the next button. This access token can be used to access your Dropbox account via the API. Don’t share your access token with anyone.
Once you created an access token, encrypt it using any encryption tools of your choice, such as Cryptomater, Cryptkeeper, CryptGo, Cryptr, Tomb, Toplip and GnuPG etc., and store it in your preferred location.
Next edit the dbxfs configuration file and add the following line in it:
"access_token_command": ["gpg", "--decrypt", "/path/to/access/token/file.gpg"]
You can find the dbxfs configuration file by running the following command:
$ dbxfs --print-default-config-file
For more details, refer dbxfs help section:
$ dbxfs -h
As you can see, mounting Dropfox folder locally in your file system using Dbxfs utility is no big deal. As far tested, dbxfs just works fine as expected. Give it a try if you're interested to see how it works and let us know about your experience in the comment section below.
Does the dbxfs mounted dropbox folder support syncing? As you might be aware, dropbox is changing their linux support and I am one of many users no longer able to use their linux client as they have dropped support for any file system but ext4 on linux. If dbxfs does include syncing support then this would be a great substitute for their linux client.
Please refer to below.
Look at this
Works like a charm. Thank you so much for your very extensive instructions! (Note: I’m using ext4 in the filesystem for the mount point, I have no idea if that makes any difference whatsoever, but I can certainly access all my files on Dropbox very easily)
DBXFS is terrible. It works for a few seconds and then ist just freezes. The problem is that it freezes the whole filesystem, even an ls command in my home folder stop working. I recognize the effort and intention of the developers, but we (linux users) have to stop using dropbox, their support for the Linux community is just nonexistent.
I have 2 dropbox accounts, I can I add (mount) the second account after mounting the first one?
I think it is possible, but I haven’t tested it though. Please check it yourself and see if it works.
Thanks for your writing. I am facing one problem. When I try to create folder or file I suddenly get this error file/folder name is too long.
I don’t know why it show this warning. Any Suggestion.
I guess it is related to Dropbox. Please look here – https://www.dropboxforum.com/t5/Dropbox-installs-integrations/Filenames-too-long-after-upgrading-to-Dropbox-business/td-p/309752
Has anyone tried re-sharing the folder DBXFS uses? I get permissions errors when doing it one way or the other. If I set the folder for SMB to use, DBXFS doesn’t populate data, if i set SMB to share the folder DBXFS is using, it can’t get access.