wagtail 中有文件大小限制或扩展名限制吗?

Is there a file size limit or extension limit in wagtail?

我有一个非常简单的模型(产品),用作页面中的 InlinePanel。

产品有一个 FileField,只要我上传小文件就可以正常工作,但是一旦我上传大文件(>5MB),我就会以某种方式收到 CSRF 错误。无论是本地还是生产。

这不是 nginx 最大上传大小的问题。

wagtail 中有文件大小限制或扩展名限制吗?

是的,这是烤成鹡鸰的。如果您将以下设置添加到您的 settings.py(或任何您的主要设置文件),您将能够限制上传大小。

WAGTAILIMAGES_MAX_UPLOAD_SIZE = 15 * 1024 * 1024   # 15mb

文档也简要介绍了这一点。这是 link:http://docs.wagtail.io/en/v2.1.1/advanced_topics/settings.html#maximum-upload-size-for-images

如果您需要将文件大小从 15mb 更改为其他大小,只需将设置行中的 15 更改为您想要限制的 mb 数。

在某些情况下,您可能为大文件配置了一个临时目录 下载。

在我的例子中是:

 FILE_UPLOAD_TEMP_DIR = str(ROOT_DIR('tmp'))

如果不创建该目录,则无法上传大文件,但小文件可以。只需在本地和生产环境中创建目录。

这个错误极难调试,因为 wagtail 管理界面只会说上传失败,甚至会以某种方式产生 CSRF 错误。