在Go语言中,有多种方法可以读取以多部分形式发送的文件
r.FormFile("file")
r.MultipartReader()
r.ParseMultipartForm(size)
并且我部分理解了它们之间的区别,但是哪个是处理大文件(〜1GB)的最佳选择?
而且,哪个是使用更少的内存?
https://golang.org/pkg/net/http/#Request.ParseMultipartForm
ParseMultipartForm将请求正文解析为multipart / form-data。整个请求正文将被解析,其文件部分的总计maxMemory字节最多存储在内存中,其余部分存储在磁盘上的临时文件中。如果需要,ParseMultipartForm调用ParseForm。一次调用ParseMultipartForm之后,后续调用无效。
因此r.ParseMultipartForm(max)
,您可以通过调用来控制最大内存使用量,并可以使用来控制从请求中读取的总量http.MaxBytesReader
。
另请参阅以下答案:https : //stackoverflow.com/a/28292505/556573
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句