Make max media upload size configurable
This commit is contained in:
		
							parent
							
								
									3f8045f412
								
							
						
					
					
						commit
						4493eefb76
					
				@ -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):
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user