Django-storages

Latest version: v1.14.5

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

Scan your dependencies

Page 1 of 9

1.14.5

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

General
-------

- Revert ``exists()`` behavior to pre-1.14.4 semantics with additional hardening for Django versions < 4.2 to fix
CVE-2024-39330. This change matches the eventual behavior Django itself shipped with. (`1484`_, `1486`_)
- Add support for Django 5.1 (`1444`_)

Azure
-----

- **Deprecated**: The setting ``AZURE_API_VERSION/api_version`` setting is deprecated in favor of
the new ``AZURE_CLIENT_OPTIONS`` setting. A future version will remove support for this setting.
- Add ``AZURE_CLIENT_OPTIONS`` settings to enable customization of all ``BlobServiceClient`` parameters
such as ``api_version`` and all ``retry*`` options. (`1432`_)

Dropbox
-------

- As part of the above hardening fix a bug was uncovered whereby a ``root_path`` setting would be applied
multiple times during ``save()`` (`1484`_)

FTP
---

- Fix incorrect ``exists()`` results due to an errant appended slash (`1438`_)

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

- Switch checksum to ``crc32c`` to fix downloading when running in FIPS mode (`1473`_)
- Fix double decompression when using ``gzip`` (`1457`_)


.. _1484: https://github.com/jschneier/django-storages/pull/1484
.. _1486: https://github.com/jschneier/django-storages/pull/1486
.. _1444: https://github.com/jschneier/django-storages/pull/1444
.. _1432: https://github.com/jschneier/django-storages/pull/1432
.. _1473: https://github.com/jschneier/django-storages/pull/1473
.. _1457: https://github.com/jschneier/django-storages/pull/1457
.. _1438: https://github.com/jschneier/django-storages/pull/1438

1.14.4

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

S3
--

- Pull ``AWS_SESSION_TOKEN`` from the environment (`1399`_)
- Fix newline handling for text mode files (`1381`_)
- Do not sign URLs when ``querystring_auth=False`` e.g public buckets or static files (`1402`_)
- Cache CloudFront Signers (`1417`_)

Azure
-----

- Fix ``collectstatic --clear`` (`1403`_)
- Add ``mode`` kwarg to ``.url()`` to support creation of signed URLs for upload (`1414`_)
- Fix fetching user delegation key when custom domain is enabled (`1418`_)

SFTP
----

- Add implementations of ``get_(modified|accessed)_time`` (`1347`_)

Dropbox
-------

- Add support for Python 3.12 (`1421`_)

FTP
---

- Conform to ``BaseStorage`` interface (`1423`_)
- Add ``FTP_ALLOW_OVERWRITE`` setting (`1424`_)

.. _1399: https://github.com/jschneier/django-storages/pull/1399
.. _1381: https://github.com/jschneier/django-storages/pull/1381
.. _1402: https://github.com/jschneier/django-storages/pull/1402
.. _1403: https://github.com/jschneier/django-storages/pull/1403
.. _1414: https://github.com/jschneier/django-storages/pull/1414
.. _1417: https://github.com/jschneier/django-storages/pull/1417
.. _1418: https://github.com/jschneier/django-storages/pull/1418
.. _1347: https://github.com/jschneier/django-storages/pull/1347
.. _1421: https://github.com/jschneier/django-storages/pull/1421
.. _1423: https://github.com/jschneier/django-storages/pull/1423
.. _1424: https://github.com/jschneier/django-storages/pull/1424

1.14.3

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

General
-------

- Add support for Django 5.0 and Python 3.12 (`1331`_)

S3
--

- **Deprecated**: The ``config`` class property has been deprecated in favor of the ``client_config`` setting,
a future version will remove support for the property.
- Fix disabling CloudFront signing with class variables (`1334`_)
- Fix ``AWS_S3_*`` environment variables lookup (`1336`_)
- Add ``client_config/AWS_S3_CLIENT_CONFIG`` to configure advanced ``botocore`` settings (`1386`_)

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

- Fix re-gzipping already gzipped files (`1366`_)

SFTP
----

- Add ``SFTP_BASE_URL`` setting (`1368`_)
- Fix saving files when ``SFTP_STORAGE_ROOT`` is set (`1372`_)

FTP
---

- Add support for FTP TLS via ``ftps`` URLs (`1320`_)
- Add support for passwords with urlchars (`1329`_)

.. _1331: https://github.com/jschneier/django-storages/pull/1331
.. _1386: https://github.com/jschneier/django-storages/pull/1386
.. _1372: https://github.com/jschneier/django-storages/pull/1372
.. _1334: https://github.com/jschneier/django-storages/pull/1334
.. _1336: https://github.com/jschneier/django-storages/pull/1336
.. _1366: https://github.com/jschneier/django-storages/pull/1366
.. _1368: https://github.com/jschneier/django-storages/pull/1368
.. _1320: https://github.com/jschneier/django-storages/pull/1320
.. _1329: https://github.com/jschneier/django-storages/pull/1329

1.14.2

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

S3
--

- Fix re-opening of ``S3File`` (`1321`_)
- Revert raising ``ImproperlyConfigured`` when no ``bucket_name`` is set (`1322`_)

.. _1321: https://github.com/jschneier/django-storages/pull/1321
.. _1322: https://github.com/jschneier/django-storages/pull/1322

1.14.1

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

Azure
-----

- Do not require both ``AccountName`` and ``AccountKey`` in ``connection_string`` (`1312`_)

S3
--

- Work around boto3 closing the uploaded file (`1303`_)
- Fix crash when cleaning up during aborted connection of ``S3File.write`` (`1304`_)
- Raise ``FileNotFoundError`` when attempting to read the ``size`` of a non-existent file (`1309`_)
- Move auth & CloudFront signer validation to init (`1302`_)
- Raise ``ImproperlyConfigured`` if no ``bucket_name`` is set (`1313`_)
- Fix tracking of ``S3File.closed`` (`1311`_)

.. _1303: https://github.com/jschneier/django-storages/pull/1303
.. _1304: https://github.com/jschneier/django-storages/pull/1304
.. _1309: https://github.com/jschneier/django-storages/pull/1309
.. _1302: https://github.com/jschneier/django-storages/pull/1302
.. _1313: https://github.com/jschneier/django-storages/pull/1313
.. _1312: https://github.com/jschneier/django-storages/pull/1312
.. _1311: https://github.com/jschneier/django-storages/pull/1311

1.14

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

General
-------

- **Breaking**: Drop support for Django 4.0 (`1235`_)
- **Breaking**: The long deprecated & removed (from Django) ``(modified|created|accessed)_time`` methods have been
removed from the various storages, please replace with the ``get_(modified|created|accessed)_time`` methods
- Add support for saving ``pathlib.PurePath`` names (`1278`_)
- Add support for Django 4.2 (`1236`_)

Azure
-----

- Set ``account_(name|key)`` from ``connection_string`` if not provided (`1225`_)

Dropbox
-------

- **Deprecated:** The name ``DropboxStorage.location`` has been deprecated, please rename to ``DropboxStorage.root_path``, a future version will
remove support for the old name. (`1251`_)
- Storage and related names with a captialized B have been changed to no longer have one e.g ``DropboxStorage`` has now replaced
``DropBoxStorage``. Aliases have been added so no change is necessary at this time. A future version might deprecate the old names. (`1250`_)
- ``DropboxStorage`` now conforms to the ``BaseStorage`` interface (`1251`_)
- Fix name mangling when saving with certain complex root paths (`1279`_)

FTP
---

- Use setting ``BASE_URL`` if it is defined (`1238`_)

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

- **Breaking**: Support for the deprecated ``GS_CACHE_CONTROL`` has been removed. Please set the ``cache_control`` parameter of
``GS_OBJECT_PARAMETERS`` instead. (`1220`_)

Libcloud
--------

- Reading a file that does not exist will now raise ``FileNotFoundError`` (`1191`_)

SFTP
----

- Add closing context manager for standalone usage to ensure connections are cleaned up (`1253`_)

S3
--

- **Deprecated:** ``AWS_S3_USE_THREADS`` has been deprecated in favor of ``AWS_S3_TRANSFER_CONFIG`` (`1280`_)
- **Important:** The namespace of this backend has changed from ``S3Boto3`` to ``S3``. There are no current plans
to deprecate and remove the old namespace but please update if you can. All paths, imports, and classes that previously
referred to ``s3boto`` are now ``s3``. E.g ``S3Boto3Storage`` has been changed to ``S3Storage`` and ``S3Boto3StorageFile``
has been changed to ``S3File``. (`1289`_). Additionally the install extra is now ``s3`` (`1284`_)
- Add setting ``transfer_config/AWS_S3_TRANSFER_CONFIG`` to customize any of the ``TransferConfig`` properties (`1280`_)
- Enable passing ``security_token`` to constructor (`1246`_)
- Do not overwrite a returned ``ContentType`` from ``get_object_parameters`` (`1281`_)
- Add support for setting ``cloudfront_key_id`` and ``cloudfront_key`` via Django 4.2's ``OPTIONS`` (`1274`_)
- Fix ``S3File.closed`` (`1249`_)
- Fix opening new files in write mode with ``S3File`` (`1282`_)
- Fix ``S3File`` not respecting mode on ``readlines`` (`1000`_)
- Fix saving files with string content (`911`_)
- Fix retrieving files with SSE-C enabled (`1286`_)

.. _1280: https://github.com/jschneier/django-storages/pull/1280
.. _1289: https://github.com/jschneier/django-storages/pull/1289
.. _1284: https://github.com/jschneier/django-storages/pull/1284
.. _1274: https://github.com/jschneier/django-storages/pull/1274
.. _1281: https://github.com/jschneier/django-storages/pull/1281
.. _1282: https://github.com/jschneier/django-storages/pull/1282
.. _1279: https://github.com/jschneier/django-storages/pull/1279
.. _1278: https://github.com/jschneier/django-storages/pull/1278
.. _1235: https://github.com/jschneier/django-storages/pull/1235
.. _1236: https://github.com/jschneier/django-storages/pull/1236
.. _1225: https://github.com/jschneier/django-storages/pull/1225
.. _1251: https://github.com/jschneier/django-storages/pull/1251
.. _1250: https://github.com/jschneier/django-storages/pull/1250
.. _1238: https://github.com/jschneier/django-storages/pull/1238
.. _1220: https://github.com/jschneier/django-storages/pull/1220
.. _1191: https://github.com/jschneier/django-storages/pull/1191
.. _1253: https://github.com/jschneier/django-storages/pull/1253
.. _1246: https://github.com/jschneier/django-storages/pull/1246
.. _1249: https://github.com/jschneier/django-storages/pull/1249
.. _1000: https://github.com/jschneier/django-storages/pull/1000
.. _911: https://github.com/jschneier/django-storages/pull/911
.. _1286: https://github.com/jschneier/django-storages/pull/1286

Page 1 of 9

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.