Django-storages

Latest version: v1.14.5

Safety actively analyzes 721794 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 9

1.12

*****************

General
-------
- Add support for Django 3.2 (`1046`_, `1042`_, `1005`_)
- Replace Travis CI with GitHub actions (`1051`_)

S3
--

- Convert signing keys to bytes if necessary (`1003`_)
- Avoid a ListParts API call during multipart upload (`1041`_)
- Custom domains now use passed URL params (`1054`_)
- Allow the use of AWS profiles and clarify the options for passing credentials (`fbe9538`_)
- Re-allow override of various access key names (`1026`_)
- Properly exclude empty folders during ``listdir`` (`66f4f8e`_)
- Support saving file objects that are not ``seekable`` (`860`_, `1057`_)
- Return ``True`` for ``.exists()`` if a non-404 error is encountered (`938`_)

Azure
-----

- **Breaking**: This backend has been rewritten to use the newer versions of ``azure-storage-blob``, which now has a minimum required version of 12.0. The settings ``AZURE_EMULATED_MODE``, ``AZURE_ENDPOINT_SUFFIX``, and ``AZURE_CUSTOM_CONNECTION_STRING`` are now ignored. (`784`_, `805`_)
- Add support for user delegation keys (`1063`_)

Google Cloud
------------

- **Breaking**: The minimum required version of ``google-cloud-storage`` is now 1.27.0 (`994`_)
- **Breaking**: Switch URL signing version from v2 to v4 (`994`_)
- **Deprecated**: Support for ``GS_CACHE_CONTROL`` will be removed in 1.13. Please set the ``cache_control`` parameter of ``GS_OBJECT_PARAMETERS`` instead. (`970`_)
- Add ``GS_OBJECT_PARAMETERS`` and overridable ``GoogleCloudStorage.get_object_parameters`` to customize blob parameters for all blobs and per-blob respectively. (`970`_)
- Catch the ``NotFound`` exception raised when deleting a non-existent blob, this matches Django and other backends (`998`_, `999`_)
- Fix signing URLs with custom endpoints (`994`_)

Dropbox
-------

- Validate ``write_mode`` param (`1020`_)

.. _fbe9538: https://github.com/jschneier/django-storages/commit/fbe9538b8574cfb0d95b04c9c477650dbfe8547b
.. _66f4f8e: https://github.com/jschneier/django-storages/commit/66f4f8ec68daaac767c013d6b1a30cf26a7ac1ca
.. _1003: https://github.com/jschneier/django-storages/pull/1003
.. _1054: https://github.com/jschneier/django-storages/pull/1054
.. _1026: https://github.com/jschneier/django-storages/pull/1026
.. _1041: https://github.com/jschneier/django-storages/pull/1041
.. _970: https://github.com/jschneier/django-storages/pull/970
.. _998: https://github.com/jschneier/django-storages/issues/998
.. _784: https://github.com/jschneier/django-storages/issues/784
.. _805: https://github.com/jschneier/django-storages/pull/805
.. _999: https://github.com/jschneier/django-storages/pull/999
.. _1051: https://github.com/jschneier/django-storages/pull/1051
.. _1042: https://github.com/jschneier/django-storages/pull/1042
.. _1046: https://github.com/jschneier/django-storages/issues/1046
.. _1005: https://github.com/jschneier/django-storages/pull/1005
.. _1020: https://github.com/jschneier/django-storages/pull/1020
.. _860: https://github.com/jschneier/django-storages/issues/860
.. _1057: https://github.com/jschneier/django-storages/pull/1057
.. _938: https://github.com/jschneier/django-storages/pull/938
.. _994: https://github.com/jschneier/django-storages/pull/994
.. _1063: https://github.com/jschneier/django-storages/pull/1063

1.11.1

*******************

S3
--

- Revert fix for ``ValueError: I/O operation on closed file`` when calling ``collectstatic`` and
introduce ``S3StaticStorage`` and ``S3ManifestStaticStorage`` for use as ``STATICFILES_STORAGE`` targets (`968`_)

.. _968: https://github.com/jschneier/django-storages/pull/968

1.11

*****************

General
-------

- Test against Python 3.9 (`964`_)

S3
--

- Fix ``ValueError: I/O operation on closed file`` when calling ``collectstatic`` (`382`_, `955`_)
- Calculate ``S3Boto3StorageFile.buffer_size`` (via setting ``AWS_S3_FILE_BUFFER_SIZE``)
at run-time rather than import-time. (`930`_)
- Fix writing ``bytearray`` content (`958`_, `965`_)

Google Cloud
------------

- Add setting ``GS_QUERYSTRING_AUTH`` to avoid signing URLs. This is useful for buckets with a
policy of Uniform public read (`952`_)

Azure
-----

- Add ``AZURE_OBJECT_PARAMETERS`` and overridable ``AzureStorage.get_object_parameters`` to customize
``ContentSettings`` parameters for all keys and per-key respectively. (`898`_)

.. _382: https://github.com/jschneier/django-storages/issues/382
.. _955: https://github.com/jschneier/django-storages/pull/955
.. _930: https://github.com/jschneier/django-storages/pull/930
.. _952: https://github.com/jschneier/django-storages/pull/952
.. _898: https://github.com/jschneier/django-storages/pull/898
.. _964: https://github.com/jschneier/django-storages/pull/964
.. _958: https://github.com/jschneier/django-storages/issues/958
.. _965: https://github.com/jschneier/django-storages/pull/965

1.10.1

*******************

S3
--

- Restore ``AWS_DEFAULT_ACL`` handling. This setting is ignored if ``ACL`` is set in
``AWS_S3_OBJECT_PARAMETERS`` (`934`_)

SFTP
----

- Fix using ``SFTP_STORAGE_HOST`` (`926`_)

.. _926: https://github.com/jschneier/django-storages/pull/926
.. _934: https://github.com/jschneier/django-storages/pull/934

1.10

*****************

General
-------

- **Breaking**: Removed support for end-of-life Python 2.7 and 3.4 (`709`_)
- **Breaking**: Removed support for end-of-life Django 1.11 (`891`_)
- Add support for Django 3.1 (`916`_)
- Introduce a new ``BaseStorage`` class with a ``get_default_settings`` method and use
it in ``S3Boto3Storage``, ``AzureStorage``, ``GoogleCloudStorage``, and ``SFTPStorage``. These backends
now calculate their settings when instantiated, not imported. (`524`_, `852`_)

S3
--

- **Breaking**: Automatic bucket creation has been removed. Doing so encourages using overly broad credentials.
As a result, support for the corresponding ``AWS_BUCKET_ACL`` and ``AWS_AUTO_CREATE_BUCKET`` settings have been removed. (`636`_)
- **Breaking**: Support for the undocumented setting ``AWS_PRELOAD_METADATA`` has been removed (`636`_)
- **Breaking**: The constructor kwarg ``acl`` is no longer accepted. Instead, use the ``ACL`` key in setting ``AWS_S3_OBJECT_PARAMETERS``
(`636`_)
- **Breaking**: The constructor kwarg ``bucket`` is no longer accepted. Instead, use ``bucket_name`` or the ``AWS_STORAGE_BUCKET_NAME``
setting (`636`_)
- **Breaking**: Support for setting ``AWS_REDUCED_REDUNDANCY`` has been removed. Replace with ``StorageClass=REDUCED_REDUNDANCY``
in ``AWS_S3_OBJECT_PARAMETERS`` (`636`_)
- **Breaking**: Support for setting ``AWS_S3_ENCRYPTION`` has been removed. Replace with ``ServerSideEncryption=AES256`` in ``AWS_S3_OBJECT_PARAMETERS`` (`636`_)
- **Breaking**: Support for setting ``AWS_DEFAULT_ACL`` has been removed. Replace with ``ACL`` in ``AWS_S3_OBJECT_PARAMETERS`` (`636`_)
- Add ``http_method`` parameter to ``.url`` method (`854`_)
- Add support for signing Cloudfront URLs to the ``.url`` method. You must set ``AWS_CLOUDFRONT_KEY``,
``AWS_CLOUDFRONT_KEY_ID`` and install either `cryptography`_ or `rsa`_ (`456`_, `587`_). See the docs for more info.
URLs will only be signed if ``AWS_QUERYSTRING_AUTH`` is set to ``True`` (`885`_)

Google Cloud
------------

- **Breaking**: Automatic bucket creation has been removed. Doing so encourages using overly broad credentials.
As a result, support for the corresponding ``GS_AUTO_CREATE_BUCKET`` and ``GS_AUTO_CREATE_ACL`` settings have been removed. (`894`_)

Dropbox
-------

- Add ``DROPBOX_WRITE_MODE`` setting to control e.g. overwriting behavior. Check the docs
for more info (`873`_, `138`_)

SFTP
----

- Remove exception swallowing during ssh connection (`835`_, `838`_)

FTP
---

- Add ``FTP_STORAGE_ENCODING`` setting to set the filesystem encoding (`803`_)
- Support multiple nested paths for files (`886`_)

.. _cryptography: https://cryptography.io
.. _rsa: https://stuvel.eu/rsa
.. _885: https://github.com/jschneier/django-storages/pull/885
.. _894: https://github.com/jschneier/django-storages/pull/894
.. _636: https://github.com/jschneier/django-storages/pull/636
.. _709: https://github.com/jschneier/django-storages/pull/709
.. _891: https://github.com/jschneier/django-storages/pull/891
.. _916: https://github.com/jschneier/django-storages/pull/916
.. _852: https://github.com/jschneier/django-storages/pull/852
.. _873: https://github.com/jschneier/django-storages/pull/873
.. _854: https://github.com/jschneier/django-storages/pull/854
.. _138: https://github.com/jschneier/django-storages/issues/138
.. _524: https://github.com/jschneier/django-storages/pull/524
.. _835: https://github.com/jschneier/django-storages/issues/835
.. _838: https://github.com/jschneier/django-storages/pull/838
.. _803: https://github.com/jschneier/django-storages/pull/803
.. _456: https://github.com/jschneier/django-storages/issues/456
.. _587: https://github.com/jschneier/django-storages/pull/587
.. _886: https://github.com/jschneier/django-storages/pull/886

1.9.1

******************

S3
--

- Fix reading files with ``S3Boto3StorageFile`` (`831`_, `833`_)

.. _831: https://github.com/jschneier/django-storages/issues/831
.. _833: https://github.com/jschneier/django-storages/pull/833

Page 3 of 9

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.