Java の Play フレームワークでサイズ 15 Gb のファイルをアップロードしようとしていますが、ブラウザで許可されていないためにエラーが発生しますか?
2 に答える
HTTP では、15 GB のファイル、または 15 TB のファイルのアップロードを妨げるものは何もありません。理論的には、チャンク転送エンコーディングが使用され、基盤となるファイルシステムがそれを処理できる場合、Play が処理できるファイルの最大サイズはありません。チャンク化されていないリクエストの場合、基礎となる Web サーバー (Netty)long
が Content-Length ヘッダーの処理に使用するため、理論上の最大値は 2 ^ 63 バイト (8192 ペタバイト) になります。
ただし、一部の Web ブラウザーは、符号付き/符号なしの 32 ビット整数を使用してコンテンツの長さを管理するため、最大で 2GB または 4GB になります。Google Chrome にも Opera にもこの制限はないため、ユーザーが 15 GB のファイルをアップロードする場合は、Google Chrome または Opera を使用する必要があります。
Play は 15GB のアップロードを処理できますが、 で設定することを強くお勧めscalaVersion := "2.10.3"
しますBuild.scala
が、以前のバージョンの Scala と iteratees にはメモリの問題がありました。
デフォルトでは、Play はmultipart/form-data
本体部分を一時ファイルに保存します。Scala では、カスタム PartHandler を提供することで、これをデータベースなどに直接ストリーミングするように変更できます。詳細なドキュメントについては、こちらを参照してください。
http://www.playframework.com/documentation/2.2.x/ScalaFileUpload