
Security News
Crates.io Users Targeted by Phishing Emails
The Rust Security Response WG is warning of phishing emails from rustfoundation.dev targeting crates.io users.
django-storages-redux
Advanced tools
This library has been designated as the official successor of django-storages (as of February 2016). Please update your requirements files to point to django-storages.
All development now happens at https://github.com/jschneier/django-storages
.. image:: https://travis-ci.org/jschneier/django-storages.png?branch=master :target: https://travis-ci.org/jschneier/django-storages :alt: Build Status
.. image:: https://pypip.in/v/django-storages-redux/badge.png :target: https://pypi.python.org/pypi/django-storages-redux :alt: PyPI Version
Installing from PyPI is as easy as doing::
pip install django-storages-redux
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 add storages
to your INSTALLED_APPS
and set DEFAULT_FILE_STORAGE
to the
backend of your choice. If, for example, you want to use the s3boto backend you would set::
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
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 was (is) a project to provide a variety of storage backends in a single library. This is its maintained, Python 3 compatible fork. The reasons for the fork are given in the next section.
At the moment the only tested Python 3 compatible backend is the S3 Boto one but some of them should work without issue (hashpath, symlink, overwrite).
This library is compatible with Django >= 1.7. It should also works with 1.6.2+ but no guarantees are made.
The BitBucket repo of the original django-storages has seen no commit applied since March 2014 (it is currently December 2014) and no PyPi release since March 2013 despite a wealth of bugfixes that were applied in that year-long gap. There is plenty of community support for the django-storages project (especially the S3BotoStorage piece) and I have a personal need for a Python3 compatible version.
All of the Python3 compatible forks that currently exist (and there are a few) are lacking in some way. This can be anything from the fact that they don't release to PyPi, have no ongoing testing, didn't apply many important bugfixes that have occurred on the Bitbucket repo since forking or don't support older versions of Python and Django (vital to finding bugs and keeping a large community). For this fork I've done the small bit of work necessary to get a tox + travis ci matrix going for all of the supported Python + Django versions. In many cases the various forks are lacking in a few of the above ways.
I suspect that a few of the storage engines in backends/ have been unsupported for quite a long time. I personally only really need the S3Storage backend but welcome bug reports (and especially) patches and tests for some of the other backends.
Issues are tracked via GitHub issues at the project issue page <https://github.com/jschneier/django-storages/issues>
_.
The original documentation for django-storages is located at http://django-storages.readthedocs.org/. Stay tuned for forthcoming documentation updates.
#. Check for open issues <https://github.com/jschneier/django-storages/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 <https://github.com/jschneier/django-storages>
_ 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. Also, don't forget to add
yourself to AUTHORS
.
1.3.3 (2017-06-27)
1.3.2 (2016-01-26)
s3boto
backend (#106
_) thanks @kmmbvnrS3BotoStorage
(#96
_) thanks @mattbrianconstorage.exists
in S3BotoStorage
-
this prevents a crash when running collecstatic -c
on Django 1.9.1 (#112
) fixed in #116
thanks @xblitz.. _#106: https://github.com/jschneier/django-storages/pull/106 .. _#96: https://github.com/jschneier/django-storages/pull/96 .. _#112: https://github.com/jschneier/django-storages/issues/112 .. _#116: https://github.com/jschneier/django-storages/pull/116
1.3.1 (2016-01-12)
url
] (#45
__) thanks @erlingbodropbox
) storage backend, thanks @ZuluPro (#76
_)apache_libcloud
backend [return the number of bytes asked for by .read
, make .name
non-private, don't
initialize to an empty BytesIO
object] thanks @kaedroho (#55
_)s3boto
backend not respecting AWS_S3_ENCRYPTION
(#94
_) thanks @andersontep#100
_).. __: https://github.com/jschneier/django-storages/pull/45 .. _#76: https://github.com/jschneier/django-storages/pull/76 .. _#55: https://github.com/jschneier/django-storages/pull/55 .. _#94: https://github.com/jschneier/django-storages/pull/94 .. _#100: https://github.com/jschneier/django-storages/pull/100
1.3 (2015-08-14)
parse_ts_extended
from s3boto storage#36
__)AWS_S3_PROXY_HOST
and AWS_S3_PROXY_PORT
settings for s3boto backend (#41
_)#52
_)GS_IS_GZIPPED
setting (#51
__, #60
_) thanks @stmos_name
attribute to name
which is what the Django File
api is expecting (#70
_)StorageMixin
first in inheritance to maintain backwards compat with older versions of Django (#63
_).. __: https://github.com/jschneier/django-storages/pull/36 .. _#41: https://github.com/jschneier/django-storages/pull/41 .. _#52: https://github.com/jschneier/django-storages/issues/52 .. __: https://github.com/jschneier/django-storages/pull/51 .. _#60: https://github.com/jschneier/django-storages/pull/60 .. _#70: https://github.com/jschneier/django-storages/pull/70 .. _#63: https://github.com/jschneier/django-storages/pull/63
1.2.3 (2015-03-14)
exists
, add modified_time
, remove call to non-existent function) (#26
_).. _#26: https://github.com/jschneier/django-storages/pull/26
1.2.2 (2015-01-28)
#21
_)#20
__)S3BotoStorage
deconstructible (previously only S3BotoStorageFile
was deconstructible) (#19
_).. _#21: https://github.com/jschneier/django-storages/pull/21 .. __: https://github.com/jschneier/django-storages/issues/20 .. _#19: https://github.com/jschneier/django-storages/pull/19
1.2.1 (2014-12-31)
storage.modified_time
crashing on new files when AWS_PRELOAD_METADATA=True
(#11
, #12
__, #14
)parse_ts_extended
.. _#11: https://github.com/jschneier/django-storages/pull/11 __ https://github.com/jschneier/django-storages/issues/12 .. _#14: https://github.com/jschneier/django-storages/pull/14
1.2 (2014-12-14)
#5
, #8
)#4
_)#1
_)#2
_).. _#8: https://github.com/jschneier/django-storages/pull/8 .. _#5: https://github.com/jschneier/django-storages/pull/5 .. _#4: https://github.com/jschneier/django-storages/pull/4 .. _#1: https://github.com/jschneier/django-storages/issues/1 .. _#2: https://github.com/jschneier/django-storages/issues/2
NOTE: Version 1.1.9 is the first release of django-storages after the fork. It represents the current (2014-12-08) state of the original django-storages in master with no additional changes. This is the first release of the code base since March 2013.
1.1.9 (2014-12-08)
#91
_#90
_#86
_#188
_ fixed by pull-request #85
_#69
_#65
_#66
_.. _#91: https://bitbucket.org/david/django-storages/pull-request/91/ .. _#90: https://bitbucket.org/david/django-storages/pull-request/90/ .. _#86: https://bitbucket.org/david/django-storages/pull-request/86/ .. _#188: https://bitbucket.org/david/django-storages/issue/188/s3boto-_clean_name-is-broken-and-leads-to .. _#85: https://bitbucket.org/david/django-storages/pull-request/85/ .. _#69: https://bitbucket.org/david/django-storages/pull-request/69/ .. _#66: https://bitbucket.org/david/django-storages/pull-request/66/ .. _#65: https://bitbucket.org/david/django-storages/pull-request/65/
Everything Below Here Was Previously Released on PyPi under django-storages
1.1.8 (2013-03-31)
#156
_ regarding date parsing, ValueError when running collectstatic.. _#156: https://bitbucket.org/david/django-storages/issue/156/s3boto-backend-valueerror-time-data-thu-07
1.1.7 (2013-03-20)
#50
_.. _#50: https://bitbucket.org/david/django-storages/pull-request/50/
1.1.6 (2013-01-06)
#133
_ with pull-request #44
_#45
_#43
_#48
_#46
_#17
_#105
_.. _#133: https://bitbucket.org/david/django-storages/issue/133/license-file-refers-to-incorrect-project .. _#44: https://bitbucket.org/david/django-storages/pull-request/44/ .. _#45: https://bitbucket.org/david/django-storages/pull-request/45/ .. _#43: https://bitbucket.org/david/django-storages/pull-request/43/ .. _#48: https://bitbucket.org/david/django-storages/pull-request/48/ .. _#46: https://bitbucket.org/david/django-storages/pull-request/46/ .. _#17: https://bitbucket.org/david/django-storages/pull-request/17/ .. _#105: https://bitbucket.org/david/django-storages/issue/105/add-option-to-produce-protocol-relative
1.1.5 (2012-07-18)
#36
_ from freakboy3742 Keith-Magee, improvements to Apache Libcloud backend and docs#35
_ from atodorov, allows more granular S3 access settings#57
_#20
_ from alanjds, fixed SuspiciousOperation warning if AWS_LOCATION ends with '/'#30
_ from pendletongp, resolves #108
, #109
and #110
_#111
_#16
_ from chamal, adds Apache Libcloud backend#24
_ from tobias.mcnulty, fixes bug where s3boto backend returns modified_time in wrong time zone.. _#36: https://bitbucket.org/david/django-storages/pull-request/36/ .. _#35: https://bitbucket.org/david/django-storages/pull-request/35/ .. _#57: https://bitbucket.org/david/django-storages/issue/57 .. _#20: https://bitbucket.org/david/django-storages/pull-request/20/ .. _#30: https://bitbucket.org/david/django-storages/pull-request/30/ .. _#108: https://bitbucket.org/david/django-storages/issue/108 .. _#109: https://bitbucket.org/david/django-storages/issue/109 .. _#110: https://bitbucket.org/david/django-storages/issue/110 .. _#111: https://bitbucket.org/david/django-storages/issue/111 .. _#16: https://bitbucket.org/david/django-storages/pull-request/16/ .. _#24: https://bitbucket.org/david/django-storages/pull-request/24/
1.1.4 (2012-01-06)
#13
_ from marcoala, adds SFTP_KNOWN_HOST_FILE
setting to SFTP storage backend#12
_ from ryankask, fixes HashPathStorage tests that delete remote media#10
_ from key, adds support for django-mongodb-engine 0.4.0 or later, fixes GridFS file deletion bug#40
_#78
_#83
_.. _#13: https://bitbucket.org/david/django-storages/pull-request/13/a-version-of-sftp-storage-that-allows-you .. _#12: https://bitbucket.org/david/django-storages/pull-request/12/hashpathstorage-tests-deleted-my-projects .. _#10: https://bitbucket.org/david/django-storages/pull-request/10/support-django-mongodb-engine-040 .. _#40: https://bitbucket.org/david/django-storages/issue/40/deprecate-s3py-backend .. _#78: https://bitbucket.org/david/django-storages/issue/78/import-error .. _#83: https://bitbucket.org/david/django-storages/issue/6/symlinkorcopystorage-new-custom-storage
1.1.3 (2011-08-15)
#89
_: broken StringIO import in CloudFiles backendpull request #5
_: HashPathStorage path bug.. _#89: https://bitbucket.org/david/django-storages/issue/89/112-broke-the-mosso-backend .. _pull request #5: https://bitbucket.org/david/django-storages/pull-request/5/fixed-path-bug-and-added-testcase-for
FAQs
Support for many storages (S3, MogileFS, etc) in Django.
We found that django-storages-redux demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The Rust Security Response WG is warning of phishing emails from rustfoundation.dev targeting crates.io users.
Product
Socket now lets you customize pull request alert headers, helping security teams share clear guidance right in PRs to speed reviews and reduce back-and-forth.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.