Skip to main content

User-space file system for Dropbox

Project description

dbxfs

dbxfs is not licensed to be hosted on GitHub in response to GitHub's history of exploitative behavior. If you are reading this on GitHub this is an illegal mirror. Do not use and report usage to the author https://twitter.com/cejetvole

dbxfs allows you to mount your Dropbox folder as if it were a local filesystem. It differs from the official Dropbox client in two main ways:

  • Internet connectivity is required for access
  • No disk space is required for access, but will cache if disk space is available

dbxfs has been tested on OpenBSD, Linux, macOS, and Windows but it should run on any POSIX system that provides a FUSE-compatible library or has the ability to mount SMB shares. It runs on non-x86 architectures like ARM. It doesn't require a specific file system.

It is written for Python 3.11+ and is licensed under the GPLv3.

Disclaimer: dbxfs is not affiliated with Dropbox, Inc.

Installation

If you are on Windows, the easiest way to use dbxfs is to download and run the pre-compiled executable. Read the README included with the Windows distribution for Windows-specific instructions.

If you are on Linux, you must install your OS's FUSE library. On Debian/Ubuntu, install the libfuse2 package, on Fedora install fuse.

Run the following command:

$ pip3 install dbxfs

On Arch Linux and derivatives, you can find it in the AUR as dbxfs.

Usage

Use dbxfs like you would use the mount command:

$ dbxfs <mount_point>

To unmount your Dropbox folder on Linux systems, you can use fusermount -u <mount_point>, on all other systems use umount.

You can see the full list of command line options by passing -h to the dbxfs command.

Advanced Refresh Token Storage

By default dbxfs stores your refresh token in an encrypted file but you may want to store it in a GPG encrypted file or something else. To do that you must first obtain a refresh token. You can obtain a refresh token by running the following command:

$ dbxfs --get-refresh-token

Once you have obtained the refresh token, encrypt it with the program of your choice and store the result somewhere. After that, you must edit the dbxfs config file. You can find the location of the config file by running the following command:

$ dbxfs --print-default-config-file

The config file is a JSON encoded file. Add the following JSON key to the top-level JSON object in that file:

"refresh_token_command": ["gpg", "--decrypt", "/path/to/refresh/token/file.gpg"]

Adapt it to a decryption program of your choice. This configuration works great for storing the refresh token using a OpenPGP card.

Contact

Rian Hunter @cejetvole

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbxfs-2.1.0.tar.gz (61.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dbxfs-2.1.0-py3-none-any.whl (66.3 kB view details)

Uploaded Python 3

File details

Details for the file dbxfs-2.1.0.tar.gz.

File metadata

  • Download URL: dbxfs-2.1.0.tar.gz
  • Upload date:
  • Size: 61.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for dbxfs-2.1.0.tar.gz
Algorithm Hash digest
SHA256 f61a591b6923ec9e133bcfb2995d9ab01d23e4d5f72f4eca16f7236c02e4dd48
MD5 18eb7f29783bce872e53187ead5931fd
BLAKE2b-256 9983d3875ab6f7cffcb116e102508ec94862a9c853ce383971b02cfb0d1281c3

See more details on using hashes here.

File details

Details for the file dbxfs-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: dbxfs-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 66.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for dbxfs-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e9bf4a14014e7fb6cf3b97b753e795abd89489131efb9ad493caf6770168b0d8
MD5 90b26e9aabb0c8d0088159074d8976d4
BLAKE2b-256 6622a2ebc8f26bcdbcc9b3a1a0ba36d3f449f9b6485a08e54016f9b0b266d2e6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page