在Heroku上有一个Rails应用程序。我想尽可能限制文件上传的大小。该文件作为StringIO对象处理,因此文件内容将在内存中处理(无需将中间文件写入文件系统)。
通常,我会限制Web服务器上的上传大小。但是使用Heroku,有什么选择?我意识到我可以使用Flash上传器,但我希望尽可能避免在客户端上使用Flash。
答案 0 :(得分:2)
Heroku将请求实体限制为某个小尺寸(30MB),并且还将所有请求/响应周期限制为30秒。两者都是硬规则,必须与之共存。
默认情况下,Rails会将文件上传到磁盘,并在将它们交给您的应用程序之前将它们转换为Tempfile实例。
答案 1 :(得分:0)
您可以在应用服务器前运行NGINX
来强制执行此约束。
heroku
这相当简单,您需要nginx.conf
和buildpack。
# nginx.conf
http {
#...
client_max_body_size 100m;
#...
}
注意:但请注意,在heroku上,NGINX
在你的dynos中运行(即每个实例的本地)。
https://blog.codeship.com/how-to-deploy-nginx-on-heroku
希望有所帮助!