In meiner Anwendung muss ich ziemlich große Dateien hochladen (bis zu 4 GB). Ich mache es mit file
Formularfeld und speichern Sie die Datei zur temporären Speicherort für die weitere Verarbeitung. . Allerdings, wenn es um Dateien kommt, die den Inhalt-Größenlimit überschreiten ich eine EntityStreamException.Abspielen 2.6 EntityStreamSizeException Ausnahme
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.]]
Ich habe versucht, beide akka einstellen * [client | server] Grenzen in meinem application.conf wie folgt:
akka.http.server.parsing.max-content-length = 4096MB
akka.http.client.parsing.max-content-length = 4096MB
aber es stürzt immer noch mit der gleichen Botschaft. Ich habe auch versucht, in der Dokumentation zu folgen und stelle Spieleinstellungen:
play.http.parser.maxMemoryBuffer=512k
play.http.parser.maxDiskBuffer=4096MB
wie es hier vorgeschlagen: https://www.playframework.com/documentation/2.6.x/ScalaBodyParsers
Das letzte, was ich versucht habe, war ausdrücklich die Einstellung in meinem Beitrag außer Kraft setzen Handler:
def doCreate = checkToken {
Action(parse.maxLength(400000000, parse.multipartFormData)) { implicit request =>
...
}
Nichts scheint zu arbeiten. Kann mir jemand sagen, was ich falsch mache?
Upd: Nach dem Lauern im Spiel/Akka-Code und einige Debuggen kann ich sehen, dass alle akka-bezogenen Einstellungen einfach vollständig ignoriert werden. Ich sehe, dass die Einstellung play.http.parser in den Kontext übernommen wird und verwendet wird, jedoch wird keine akka-Einstellung angewendet und maxContentLength bleibt auf den Standardwert von 8 MB gesetzt. Aber nach diesem Dokument: https://www.playframework.com/documentation/2.6.x/SettingsAkkaHttp sollten sie angewendet werden. Nicht sicher, was als nächstes zu tun ist. Jede Hilfe wird wirklich geschätzt.