summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAvi Flax2022-12-04 20:20:50 -0500
committerGitHub2022-12-04 18:20:50 -0700
commit4493eefb768dac16500a888d2e8b868b1457655f (patch)
tree60ec292f609f860369d6df401c04488a9e3669f3
parent3f8045f4128d14558636b1c8a9445c29e8e1583d (diff)
downloadtakahe-4493eefb768dac16500a888d2e8b868b1457655f.tar.gz
takahe-4493eefb768dac16500a888d2e8b868b1457655f.tar.bz2
takahe-4493eefb768dac16500a888d2e8b868b1457655f.zip
Make max media upload size configurable
-rw-r--r--activities/views/compose.py7
-rw-r--r--takahe/settings.py5
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