TL; DR hinzufügen parsers.text.maxLength = 512k
oder was auch immer Größe zu Ihrem application.conf
aktualisieren: Gefunden in den official documentation
Es ist eigentlich in den API dokumentiert, obwohl es einige Graben tatsächlich dauerte es zu finden.
Die Erweiterung DEFAULT_MAX_TEXT_LENGTH zeigt, dass die maximale Größe für Textdaten konfigurierbar ist, indem parsers.text.maxLength
in application.conf
festgelegt wird. Wenn Sie in der Quelle selbst suchen, ist der Standardwert 100Kb. Dies ist wahrscheinlich das, was Sie einstellen müssen.
Zu einem etwas verwandten Hinweis haben wir auch die maxLength
Methode, die für alle BodyParser verwendet werden kann, was bedeutet, dass für Nicht-Text-Daten gibt es keine obere Grenze, wenn Sie diese Methode anwenden. In der Tat können wir es auf die anycontent Parser gelten wie folgt:
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")
}
}
Warum ist es 1024 statt nur 1000? –
ein Kilobyte ist normalerweise definiert als 2^10 oder 1024 Bytes statt nur 1000 – thatsmydoing
Danke, das hat geholfen! Außerdem warnt Play 2.4: 'parsers.text.maxLength ist veraltet, benutze stattdessen play.http.parser.maxMemoryBuffer' – Jonik