是否可以在不读取请求的整个主体的情况下在Plack :: Middleware中强制执行最大上载大小?

时间:2014-12-17 15:50:25

标签: perl http-request plack psgi

我刚刚将PageKit(mod_perl)应用程序转换为Plack。这意味着我现在需要一些方法来强制执行Apache2::Reques之前已经处理过的POST_MAX / MAX_BODY。最简单的方法可能只是将nginx放在应用程序前面,但应用程序已经位于HAProxy后面,我不知道如何使用HAProxy执行此操作。

所以,我的问题是如何在Plack::Middleware强制执行最大体型而不首先阅读整个请求

具体来说,我关注文件上传。通过Plack::Request::Upload检查大小为too late,因为此时已经读取了整个正文。该应用将通过Starman进行部署,因此psgix.streaming should be true

1 个答案:

答案 0 :(得分:3)

我通过Tatsuhiko Miyagawa收到了Twitter的回复。他说,"如果你使用Starman进行部署,即使使用中间件也为时已晚,因为缓冲已经开启。我是用nginx"来做的。

当我处理Starman部署时,这回答了我的特定问题。

He also noted" rejecting a bigger upload before reading it on the backend could cause issues in general"