Skip to main content

A Dropbox Storage for your Django apps

Project description

django-dropbox-storage

A Dropbox Storage for your Django apps

What

django-dropbox-storage allows Django apps to use Dropbox as a storage backend for file uploading.

Installing

First things first:

$ pip install django-dropbox-storage

Then open the settings.py of your project and include it to your INSTALLED_APPS:

INSTALLED_APPS = (
    ...
    'django_dropbox_storage',
    ...
)

If you want to use django_dropbox_storage as default storage for all file uploads, you need to adjust DEFAULT_FILE_STORAGE too:

DEFAULT_FILE_STORAGE = 'django_dropbox_storage.storage.DropboxStorage'

If you just want to use it on a single model field, you can simply import it:

from django_dropbox_storage.storage import DropboxStorage

DROPBOX_STORAGE = DropboxStorage()

photo = models.ImageField(upload_to='photos', storage=DROPBOX_STORAGE ...)

In order to let it work properly, you must set the next settings:

DROPBOX_ACCESS_TOKEN = 'xxx'

If you don't have DROPBOX_ACCESS_TOKEN you can create one after creating a Dropbox app at Dropbox for Developers. If you have your Dropbox App key and App secret, you can set DROPBOX_CONSUMER_KEY and DROPBOX_CONSUMER_SECRET settings in settings.py, then run:

$ python manage.py get_dropbox_token [--settings=test_settings]

And follow up on screen instructions, finally set the DROPBOX_ACCESS_TOKEN_SECRET in your settings.py module.

You can also set default root folder setting the value of DROPBOX_ROOT_FOLDER:

DROPBOX_ROOT_FOLDER = '/Public'

By default it's set to '/' (root folder).

Tests

Tests are written following Django's best practices.

In order to run them, you need to set DROPBOX_ACCESS_TOKEN properly.

NOTE: if you're testing this package as stand-alone, you can set the access token in a local_settings.py module put in the root folder.

To launch the test suite:

$ python manage.py test [--settings=test_settings]

To check the unit tests coverage you can:

$ pip install coverage
$ coverage run manage.py test [--settings=test_settings]
$ coverage report -m

Contributing

When contributing, please follow these steps:

  • Clone the repo and make your changes.
  • Make sure your code has test cases written against it.
  • Make sure all the tests pass.
  • Lint your code with Flake8.
  • Add your name to the list of contributers.
  • Submit a Pull Request.

Authors

  • Emanuele Bertoldi

This project is based on previous work by:

Kudos and many thanks to all of them!

License

Copyright (c) 2018 Emanuele Bertoldi

MIT License

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

django-dropbox-storage-fork-0.4.1.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file django-dropbox-storage-fork-0.4.1.tar.gz.

File metadata

  • Download URL: django-dropbox-storage-fork-0.4.1.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.6.7

File hashes

Hashes for django-dropbox-storage-fork-0.4.1.tar.gz
Algorithm Hash digest
SHA256 e11771f94b73d6bccedb2ed583c55c21822e0449a81d0697a84d236fca76e23d
MD5 1c792bae8be64ca2f400bf8b0e69f06d
BLAKE2b-256 a7bff6a6f5f18c6e87a686a8fbfad018343c62bbaed875a0ffddef68010301aa

See more details on using hashes here.

File details

Details for the file django_dropbox_storage_fork-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: django_dropbox_storage_fork-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.6.7

File hashes

Hashes for django_dropbox_storage_fork-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 24629a791cb41ebd9d045e222324feebf020793d353ba7db8f629f99cd4db518
MD5 ef21bfaed4eec9e3d8fa3daed06aa4ab
BLAKE2b-256 46602bcd0aedcf7ca038fbff8153e334afd6aee2820a7c7e071c21b79203f58c

See more details on using hashes here.

Supported by

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