Rails - 设置POST请求限制(文件上传)

时间:2012-11-10 04:55:04

标签: ruby-on-rails heroku rack carrierwave

我正在使用CarrierWave为Rails构建文件上传器。我对它的API感到非常高兴,除了我似乎无法动态删除超出限制的文件上传。

我找到this plugin进行验证,但问题是在完成上传后发生了。在我的情况下,是完全不可接受的,因为任何用户都可以通过上传大文件来关闭网站。

所以,我认为使用一些Rack配置或中间件会限制POST体型的方式。我作为背景在Heroku上主持。

*我知道https://github.com/dwilkie/carrierwave_direct但它并没有解决我的问题,因为我必须首先调整大小并丢弃原始的大图像。

1 个答案:

答案 0 :(得分:1)

快速而肮脏的解决方法是使用javascript上传程序并在那里进行验证。如果这还不够好:

  • 如果您将应用程序服务器切换到rainbows,则可以使用名为client_max_body_size的设置。

  • 如果您正在使用其他应用程序服务器,则必须查找等效设置(可能不存在),或者提出某种中间件(可能是也可能不是)取决于您的应用程序服务器)。如果你写一个干净的中间件来做到这一点,我想很多人会感兴趣,因为现在似乎没有一个。

  • 如果你没有使用heroku,你可以使用nginx的client_max_body_size设置,或者等同于apache的任何设置。