(播放2.0)设置AnyContent最大POST大小((Play 2.0) Set maximum

2019-07-30 16:04发布

我在玩2.0使用Scala和我得到一个413错误,每当大数据(超过100KB)发布到特定端点。 它使用的解析器anyContent,这不是合理使用任何其他解析器这个特定的API。

有对堆栈溢出,显示如何增加最大POST大小的文本或JSON请求其他问题。 我该怎么做它anyContent,或者只是增加了限制项目范围?

Answer 1:

TL; DR添加parsers.text.maxLength = 512k或任何大小的application.conf

更新 :中找到官方文档

它实际上记录了在API ,虽然花了一些挖掘真正找到它。

扩大DEFAULT_MAX_TEXT_LENGTH表明,文本数据的最大尺寸是通过设置配置parsers.text.maxLengthapplication.conf 。 展望源本身,默认是100KB,所以这是最有可能你需要设置什么。

在一个有点相关的说明,我们也有maxLength可用于任何BodyParser,这意味着非文本数据的方法,没有上限,除非你申请的是方法。 事实上,我们可以把它应用到AnyContent解析器像这样:

def foo = Action(parse.maxLength(512 * 1024, parser = parse.anyContent)) { implicit req =>
    req.body match {
        case Left(_) => EntityTooLarge
        case Right(body) => Ok("This is totally not too large")
    }
}


Answer 2:

注意使用原始的解析器,即一个最多需要作为参数:

行动(parse.raw(10000 * 1024))

详情请参见该parse.raw方法。



文章来源: (Play 2.0) Set maximum POST size for AnyContent