在 discourse 上我们可以上传的最大文件大小是多少?

大家好,

想了解一下平台上允许上传的最大文件大小是多少?

目前我们将其设置为 184 MB。但是,当我尝试上传一个 40-50 MB 的文件时,上传失败。

提前感谢。
Kanishk

您可能还需要更改您的 nginx 配置

抱歉打扰这个帖子。我尝试了各种方法来更改 max upload size,但我的实例只允许上传 1 MB 的附件。我尝试过 10 MB、20 MB 以及默认设置。

我设置了 client_max_body_size 100m;

1. 使用自定义命令 `sed -i 's/client_max_body_size 10m;/client_max_body_size 100m;/g' /etc/nginx/conf.d/discourse.conf`
2. 在 app.yml 中使用参数 `upload_size: 100m`
3. 在容器内手动修改

方法 1 和 2 后我重建了应用,方法 3 后我在容器内重新加载了 Nginx。

这是一次全新安装,仅使用了官方插件。自定义部分包括:Office 365 登录和自签名证书(因为服务器位于内网,而 Office 365 登录需要 HTTPS)。所有功能都正常:登录、邮件发送、通过邮件回复。但附件大小上限仍约为 1 MB(文件和图片均如此)。我已将文件类型设置为允许 *。我在外部代理 Nginx 上也设置了相同的 100 MB 请求体大小限制。

我真的很困惑。我已经使用 Discourse 四年了。是我的设置不正确还是有冲突?能否有人指点我应该先检查哪些方面?

@merefield

@Ivan_Rapekas 说得对。这确实无法实现。这是后端的一项限制,不允许我们增加文件上传大小。

你读过这个吗?

没错,那是更好的解决方案。想象一下,Nginx 配置每次都会被重建,这或许就是如果你直接修改配置却无法持久化的原因:+1:

最初(在容器内):

image

将 app.yml 更新为:

image

重建后:

image

所以,@Kanishk_Jaswal,也许这就是你的问题,每次重建时配置都被重置了?

当然。我研究过所有相关主题。奇怪的是只有 1MB 的大小。对我来说 10MB 就足够了,但我无法达到这个数值。

感谢指出这一点,我检查过了——设置似乎没问题……

确实如此,而且你之前还说是“大约”1MB,这更奇怪了。

有没有可能是防火墙、路由器、网络或 VPN 设置异常?应用会报错,还是上传会静默失败?

感谢您的支持。我意识到外部代理可能设置了错误的请求体大小。刚刚检查了日志……

看来是我的问题。希望我能尽快修复,并为外部 Nginx 恢复正确的设置。

感谢大家。

我前面部署了 Nginx 作为 Discourse 的反向代理。配置文件如下:

/etc/nginx/nginx.conf(默认配置)
/etc/nginx/conf.d/discourse.conf(自定义配置)

两个配置文件中都包含 server{} 块。起初,我将 client_max_body_size 100m; 放在了自定义配置文件中,但该设置实际上并未生效,而我当时也未检查代理日志。

后来,我将 client_max_body_size 100m; 移动到了默认配置文件(父配置)中,问题便得以解决。

因此,Change the maximum attachment/upload size 这篇文章的内容是准确的。根本原因在于 Discourse 外部的反向代理设置,这反而是最好的情况 :slight_smile: