Django 如何控制用户可以上传的图像大小

Django 如何控制用户可以上传的图像大小,django,amazon-web-services,amazon-s3,django-models,Django,Amazon Web Services,Amazon S3,Django Models,我有一个Django应用程序,用户可以将图像上传到S3存储桶,我对一些用户进行了测试,发现很多人上传了非常大的照片(高达55MB),当我呈现主页时,必须显示所有图像。每次有人浏览它,都会消耗我的带宽 有没有办法限制人们上传的图像的大小?可能每个都有10 MB?您可以这样做-可能在validators.py中: 来自django.core.exceptions的导入验证错误 def验证文件大小(值): filesize=value.size 如果文件大小>10485760:#10个MiB(字节)

我有一个Django应用程序,用户可以将图像上传到S3存储桶,我对一些用户进行了测试,发现很多人上传了非常大的照片(高达55MB),当我呈现主页时,必须显示所有图像。每次有人浏览它,都会消耗我的带宽


有没有办法限制人们上传的图像的大小?可能每个都有10 MB?

您可以这样做-可能在
validators.py中:

来自django.core.exceptions的
导入验证错误
def验证文件大小(值):
filesize=value.size
如果文件大小>10485760:#10个MiB(字节)
raise ValidationError(“可上载的最大文件大小为10 MiB”)
其他:
返回值
然后在您的
models.py中:

from.validators导入验证文件大小
file=models.FileField(…,validators=[validate\u file\u size])
然而,这是服务器端,而不是客户端。因此,每次提交文件都会通过有线向您传输文件,从而产生带宽费用。如果有人要上传一个1 GiB的文件,那么上传将消耗1 GiB的bandwith,即使它被服务器拒绝


客户端验证需要一些类似JS的东西,但您也需要服务器端验证。

是的,您可以使用validator。非常感谢,这是一种方法:如果文件大小>10mb:将图像大小调整为10mb??问题不是用户上传大照片,而是我每次渲染画廊时都会渲染这些照片,因为我没有计划这种情况,我没有添加“创建缩略图”功能,我现在不知道如何添加它。。。很抱歉,我几个月前才开始编程,我的知识仍然非常基础。您可以使用枕头,但您必须小心,因为如果有人上载非映像,它可能(可能!)使您暴露于任意代码执行漏洞。非常感谢!