Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update django-storages to 1.14.4 #1784

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Jul 9, 2024

This PR updates django-storages from 1.9.1 to 1.14.4.

Changelog

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

1.13.2

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

General
-------

- Add support for Python 3.11 (`1196`_)
- Add support for saving ``pathlib.Path`` names (`1200`_)

S3
--

- Catch 404 errors when calling ``delete()`` (`1201`_)

Azure
-----

- Use ``AZURE_CUSTOM_DOMAIN`` for retrieving blob URLs and storage URL for other operations (`1176`_)

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

- Use ``DEFAULT_RETRY`` for all upload & delete operations (`1156`_)
- Fix gzipping of content (`1203`_)
- Pass through kwargs to signed URL generator (`1193`_)

SFTP
----

- Improve write & memory performance when saving files (`1194`_)

.. _1196: https://github.com/jschneier/django-storages/pull/1196
.. _1200: https://github.com/jschneier/django-storages/pull/1200
.. _1201: https://github.com/jschneier/django-storages/pull/1201
.. _1176: https://github.com/jschneier/django-storages/pull/1176
.. _1156: https://github.com/jschneier/django-storages/pull/1156
.. _1203: https://github.com/jschneier/django-storages/pull/1203
.. _1193: https://github.com/jschneier/django-storages/pull/1193
.. _1194: https://github.com/jschneier/django-storages/pull/1194

1.13.1

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

Dropbox
-------

- Strip off the root path when saving files to fix saving with upgraded versions of Django (`1168`_)
- Update ``DropBoxStorage`` constructor parameter order to be backwards compatible (`1167`_)

.. _1167: https://github.com/jschneier/django-storages/pull/1167
.. _1168: https://github.com/jschneier/django-storages/pull/1168

1.13

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

General
-------

- Add support for Django 4.0 and 4.1 (`1093`_)
- Drop support for Django 2.2, 3.0 and 3.1 (`1093`_)
- Drop support for Python 3.5 and 3.6 (`1093`_)

S3
--

- **Breaking**: Update and document the undocumented ``AWS_S3_URL_PROTOCOL`` from ``http:`` to ``https:`` and remove the
undocumented ``AWS_S3_SECURE_URLS`` setting. You should only need to update your settings if you had updated either of
these previously undocumented settings.  The default behavior of constructing an ``https:`` URL with a custom domain
is unchanged (`1164`_)
- Add ``AWS_S3_USE_THREADS`` to disable ``threading`` for compatibility with ``gevent`` (`1112`_)

Dropbox
-------

- Add support for refresh tokens (`1159`_)
- Ignore ``ApiError`` exception in ``url()`` (`1158`_)

Azure
-----

- Restore support for ``AZURE_ENDPOINT_SUFFIX`` (`1118`_)
- Replace deprecated ``download_to_stream`` with ``readinto`` (`1113`_)
- Add ``AZURE_API_VERSION`` setting (`1132`_)
- Fix ``get_modified_time()`` (`1134`_)

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

- Add support for gzipping files via ``GS_IS_GZIPPED`` and ``GZIP_CONTENT_TYPES`` (`980`_)
- Use ``GS_BLOB_CHUNK_SIZE`` with files that already exist (`1154`_)

.. _980: https://github.com/jschneier/django-storages/pull/980
.. _1118: https://github.com/jschneier/django-storages/pull/1118
.. _1113: https://github.com/jschneier/django-storages/pull/1113
.. _1112: https://github.com/jschneier/django-storages/pull/1112
.. _1132: https://github.com/jschneier/django-storages/pull/1132
.. _1134: https://github.com/jschneier/django-storages/pull/1134
.. _1159: https://github.com/jschneier/django-storages/pull/1159
.. _1158: https://github.com/jschneier/django-storages/pull/1158
.. _1164: https://github.com/jschneier/django-storages/pull/1164
.. _1093: https://github.com/jschneier/django-storages/pull/1093
.. _1154: https://github.com/jschneier/django-storages/pull/1154

1.12.3

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

General
-------

- Add support for Python 3.10 (`1078`_)

S3
--

- Re-raise non-404 errors in ``.exists()`` (`1084`_, `1085`_)

Azure
-----

- Fix using ``AZURE_CUSTOM_DOMAIN`` with an account key credential (`1082`_, `1083`_)

SFTP
----

- Catch ``FileNotFoundError`` instead of ``OSerror`` in ``.exists()`` to prevent swallowing ``socket.timeout`` exceptions (`1064`_, `1087`_)


.. _1078: https://github.com/jschneier/django-storages/pull/1078
.. _1084: https://github.com/jschneier/django-storages/issues/1084
.. _1085: https://github.com/jschneier/django-storages/pull/1085
.. _1082: https://github.com/jschneier/django-storages/issues/1082
.. _1083: https://github.com/jschneier/django-storages/pull/1083
.. _1064: https://github.com/jschneier/django-storages/issues/1064
.. _1087: https://github.com/jschneier/django-storages/pull/1087

1.12.2

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

Azure
-----

- Add ``parameters`` kwarg to ``AzureStorage.url`` to configure blob properties in the SAS token (`1071`_)
- Fix regression where ``AZURE_CUSTOM_DOMAIN`` was interpreted as a replacement of ``blob.core.windows.net`` rather than as a full domain
(`1073`_, `1076`_)

.. _1071: https://github.com/jschneier/django-storages/pull/1071
.. _1073: https://github.com/jschneier/django-storages/issues/1073
.. _1076: https://github.com/jschneier/django-storages/pull/1076

1.12.1

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

S3
--

- Change gzip compression to use a streaming implementation (`1061`_)
- Fix saving files with ``S3ManifestStaticStorage`` (`1068`_, `1069`_)

.. _1061: https://github.com/jschneier/django-storages/pull/1061
.. _1068: https://github.com/jschneier/django-storages/issues/1068
.. _1069: https://github.com/jschneier/django-storages/pull/1069

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
Links

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant