【问题标题】:golang - which function for uploading large filesgolang - 上传大文件的函数
【发布时间】:2016-07-15 06:01:10
【问题描述】:

在 go 中有不同的方法来读取以多部分形式发送的文件

r.FormFile("file")

r.MultipartReader()

r.ParseMultipartForm(size)

我部分了解它们之间的区别,但是哪个最适合处理大文件(~1GB)?

那么,哪个内存占用少?

【问题讨论】:

    标签: forms go upload


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 2013-10-16
      • 2017-11-12
      • 1970-01-01
      • 2016-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多