在我的应用程序中,我需要上传相当大的文件(最多4GB)。我使用file
表单域来完成,并将文件保存到临时位置以供进一步处理。然而,当涉及到超出内容的大小限制的文件,我得到一个EntityStreamException:播放2.6 EntityStreamSizeException异常
play.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[EntityStreamSizeException: EntityStreamSizeException: actual entity size (Some(781434380)) exceeded content length limit (8388608 bytes)! You can configure this by setting `akka.http.[server|client].parsing.max-content-length` or calling `HttpEntity.withSizeLimit` before materializing the dataBytes stream.]]
我试图同时设置阿卡* [客户端|服务器]在我application.conf限制如下:
akka.http.server.parsing.max-content-length = 4096MB
akka.http.client.parsing.max-content-length = 4096MB
但它仍然与相同的消息崩溃。 我也试着跟随文档和设置播放的设置:
play.http.parser.maxMemoryBuffer=512k
play.http.parser.maxDiskBuffer=4096MB
,因为它是在这里提出: https://www.playframework.com/documentation/2.6.x/ScalaBodyParsers
我试过的最后一件事是明确地覆盖在我的岗位设置处理者:
def doCreate = checkToken {
Action(parse.maxLength(400000000, parse.multipartFormData)) { implicit request =>
...
}
没有什么似乎工作。有人可以告诉我我做错了什么吗?
Upd:潜伏在游戏/ akka代码和一些调试后,我可以看到任何阿卡有关的设置刚被完全忽略。我发现play.http.parser设置传播到上下文并且被使用,但是没有应用任何akka设置,并且maxContentLength保持设置为默认值8MB。但根据这个文件:https://www.playframework.com/documentation/2.6.x/SettingsAkkaHttp 他们应该被应用。不知道下一步该怎么做。任何帮助将非常感激。