-1

Java の Play フレームワークでサイズ 15 Gb のファイルをアップロードしようとしていますが、ブラウザで許可されていないためにエラーが発生しますか?

4

2 に答える 2

5

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

于 2013-09-30T08:22:37.087 に答える