diff options
author | Avi Flax | 2022-12-04 20:20:50 -0500 |
---|---|---|
committer | GitHub | 2022-12-04 18:20:50 -0700 |
commit | 4493eefb768dac16500a888d2e8b868b1457655f (patch) | |
tree | 60ec292f609f860369d6df401c04488a9e3669f3 | |
parent | 3f8045f4128d14558636b1c8a9445c29e8e1583d (diff) | |
download | takahe-4493eefb768dac16500a888d2e8b868b1457655f.tar.gz takahe-4493eefb768dac16500a888d2e8b868b1457655f.tar.bz2 takahe-4493eefb768dac16500a888d2e8b868b1457655f.zip |
Make max media upload size configurable
-rw-r--r-- | activities/views/compose.py | 7 | ||||
-rw-r--r-- | takahe/settings.py | 5 |
2 files changed, 10 insertions, 2 deletions
diff --git a/activities/views/compose.py b/activities/views/compose.py index d5d034b..313fe74 100644 --- a/activities/views/compose.py +++ b/activities/views/compose.py @@ -1,4 +1,5 @@ from django import forms +from django.conf import settings from django.core.exceptions import PermissionDenied from django.shortcuts import get_object_or_404, redirect, render from django.utils.decorators import method_decorator @@ -158,10 +159,12 @@ class ImageUpload(FormView): def clean_image(self): value = self.cleaned_data["image"] - if value.size > 1024 * 1024 * 10: + max_mb = settings.SETUP.MEDIA_MAX_IMAGE_FILESIZE_MB + max_bytes = max_mb * 1024 * 1024 + if value.size > max_bytes: # Erase the file from our data to stop trying to show it again self.files = {} - raise forms.ValidationError("File must be 10MB or less") + raise forms.ValidationError(f"File must be {max_mb}MB or less") return value def form_invalid(self, form): diff --git a/takahe/settings.py b/takahe/settings.py index 15f30ee..89d4d3a 100644 --- a/takahe/settings.py +++ b/takahe/settings.py @@ -94,6 +94,11 @@ class Settings(BaseSettings): MEDIA_ROOT: str = str(BASE_DIR / "media") MEDIA_BACKEND: Optional[MediaBackendUrl] = None + #: Maximum filesize when uploading images. Increasing this may increase memory utilization + #: because all images with a dimension greater than 2000px are resized to meet that limit, which + #: is necessary for compatibility with Mastodon’s image proxy. + MEDIA_MAX_IMAGE_FILESIZE_MB: int = 10 + #: Request timeouts to use when talking to other servers Either #: float or tuple of floats for (connect, read, write, pool) REMOTE_TIMEOUT: float | tuple[float, float, float, float] = 5.0 |