我在玩2.0使用Scala和我得到一个413错误,每当大数据(超过100KB)发布到特定端点。 它使用的解析器anyContent,这不是合理使用任何其他解析器这个特定的API。
有对堆栈溢出,显示如何增加最大POST大小的文本或JSON请求其他问题。 我该怎么做它anyContent,或者只是增加了限制项目范围?
我在玩2.0使用Scala和我得到一个413错误,每当大数据(超过100KB)发布到特定端点。 它使用的解析器anyContent,这不是合理使用任何其他解析器这个特定的API。
有对堆栈溢出,显示如何增加最大POST大小的文本或JSON请求其他问题。 我该怎么做它anyContent,或者只是增加了限制项目范围?
TL; DR添加parsers.text.maxLength = 512k
或任何大小的application.conf
更新 :中找到官方文档
它实际上记录了在API ,虽然花了一些挖掘真正找到它。
扩大DEFAULT_MAX_TEXT_LENGTH表明,文本数据的最大尺寸是通过设置配置parsers.text.maxLength
在application.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")
}
}
注意使用原始的解析器,即一个最多需要作为参数:
行动(parse.raw(10000 * 1024))
详情请参见该parse.raw方法。