Installing from PyPI is as easy as doing:
pip install django-storages
If you'd prefer to install from source (maybe there is a bugfix in master that hasn't been released yet) then the magic incantation you are looking for is:
pip install -e 'git+https://github.com/jschneier/django-storages.git#egg=django-storages'
Once that is done, if using Django 4.1 or earlier, set DEFAULT_FILE_STORAGE
to the backend of your choice.
If, for example, you want to use the boto3 backend you would set:
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
For Django 4.2 or later, set the default
value in STORAGES
to the backend of your choice. For example:
STORAGES = {
'default': {
'BACKEND': 'storages.backends.s3boto3.S3Boto3Storage',
},
'staticfiles': {
# Leave whatever setting you already have here, e.g.:
'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage',
}
}
If you are using the FileSystemStorage
as your storage management class in your models FileField
fields, remove them
and don't specify any storage parameter. That way, the DEFAULT_FILE_STORAGE
class will be used by default in your field.
For example, if you have a photo field defined as:
photo = models.FileField(
storage=FileSystemStorage(location=settings.MEDIA_ROOT),
upload_to='photos',
)
Set it to just:
photo = models.FileField(
upload_to='photos',
)
There are also a number of settings available to control how each storage backend functions, please consult the documentation for a comprehensive list.
django-storages is a project to provide a variety of storage backends in a single library.
This library is usually compatible with the currently supported versions of Django. Check the Trove classifiers in setup.py to be sure.
django-storages is backed in part by Tidelift. Check them out for all of your enterprise open source software commercial support needs.
To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure. Please do not post a public issue on the tracker.
Issues are tracked via GitHub issues at the project issue page.
Documentation for django-storages is located at https://django-storages.readthedocs.io/.
- Check for open issues at the project issue page or open a new issue to start a discussion about a feature or bug.
- Fork the django-storages repository on GitHub to start making changes.
- Add a test case to show that the bug is fixed or the feature is implemented correctly.
- Bug me until I can merge your pull request.
Please don't update the library version in CHANGELOG.rst or storages/__init__.py
, the maintainer will do that on release.
If you're the first to update the CHANGELOG in this release cycle, just put the version as XXXX-XX-XX
.
This repo began as a fork of the original library under the package name of django-storages-redux and became the official successor (releasing under django-storages on PyPI) in February of 2016.