15

Play 2.0 で Scala を使用していますが、大きなデータ (100KB を超える) が特定のエンドポイントに POST されるたびに 413 エラーが発生します。これは anyContent パーサーを使用しており、この特定の API に他のパーサーを使用することは合理的ではありません。

テキストまたは JSON 要求の最大 POST サイズを増やす方法を示すスタック オーバーフローに関する他の質問があります。anyContent に対してどのように行うか、プロジェクト全体の制限を増やすだけですか?

4

3 に答える 3

22

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")
    }
}
于 2012-07-29T11:00:13.353 に答える