2016-03-28 8 views
0

では、マルチパートフォームgolang -

r.FormFile("file")

r.MultipartReader()

r.ParseMultipartForm(size)

と私は部分的に理解して送信されたファイルを読み込むためのさまざまな方法があります行く大きなファイルをアップロードするための機能しかし、それは大きなファイル(〜1GB)を処理するのに最適ですか?

そして、これは少ないメモリを使用するものですか?

答えて

3

https://golang.org/pkg/net/http/#Request.ParseMultipartForm

ParseMultipartFormは、マルチパート/フォームデータとしてリクエストボディを解析します。 リクエストボディ全体が解析され、そのファイル部分の最大maxMemoryバイトがメモリに格納され、残りはテンポラリファイルのディスクに格納されます。 ParseMultipartFormは、必要に応じてParseFormを呼び出します。 ParseMultipartFormを1回呼び出すと、それ以降の呼び出しは効果がありません。

そのためr.ParseMultipartForm(max)を呼び出すことにより、最大メモリ使用量を制御することができ、あなたはhttp.MaxBytesReaderを使用して要求から読み取る合計量を制御することができます。

また、この回答を参照してください。https://stackoverflow.com/a/28292505/556573