Update our django-storages dependency and fix storage usage.
Review Request #13764 — Created April 22, 2024 and submitted
Django 4.2 no longer supports the
DEFAULT_FILE_STORAGE
setting, and we
hadn't updated our code to move fully over toSTORAGES
. This prevented
us from properly storing or accessing files via S3 (in the case of
reviews.reviewboard.org), and would have affected users using this or
other storage backends.We now set
STORAGES['default']
instead, which is the modern
equivalent.The django-storages dependency has been bumped as part of this, as older
releases don't work with Django 4.2. There have been some changes in
modern django-storages, which impacted some of our loading code. That
code has been updated accordingly.As django-storages is now light-weight, with all the requirements for
services like S3 being available via "extra" dependencies, we can now
depend on it unconditionally. Our S3 support inReviewBoard[s3]
now
just wrapsdjango-storages[s3]
. Of note, they now useboto3
, as
opposed to the oldboto
we used before.One notable change is that it appears django-storages before may have
given us signed URLs unconditionally. It's not entirely clear, but it
does seem that we aren't getting signed URLs anymore due to the
aws_querystring_auth
setting we pass in. We had this set toFalse
,
which is a bad default. We now set it toTrue
and set a standard
expiration for signed URLs.One last semi-related thing is that we had a bad field name set in the
configuration form that prevented the configured storage backend from
being selected by default. This has been corrected.Semi-related, the support for CouchDB is now explicitly turned off. It
turns out we haven't actually worked with it in ages, and we never
offered native configuration. It's doubtful anyone's used it since its
introduction, and isn't worth putting in the release notes.
Unit tests pass.
Re-deployed and verified that file storage and access worked again.
Summary | ID |
---|---|
01f3b4ca02a89db8caa7b46d03ff52bca2f772d4 |