2016-03-28 57 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後,後續調用不起作用。

可以因此通過調用r.ParseMultipartForm(max)控制最大內存使用情況,您可以通過使用http.MaxBytesReader控制從請求讀取的總金額。

也看到這個答案:https://stackoverflow.com/a/28292505/556573