golang-用于上传大文件的功能

卡洛:

在Go语言中,有多种方法可以读取以多部分形式发送的文件

r.FormFile("file")

r.MultipartReader()

r.ParseMultipartForm(size)

并且我部分理解了它们之间的区别,但是哪个是处理大文件(〜1GB)的最佳选择?

而且,哪个是使用更少的内存?

elithrar:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章