【问题标题】:How to release memory or remove temp files created by http.ParseMultipartForm?如何释放内存或删除由 http.ParseMultipartForm 创建的临时文件?
【发布时间】:2015-12-15 18:42:47
【问题描述】:

我正在使用 http.ParseMultipartForm 在我的 web 应用上处理文件上传。
文档说:

ParseMultipartForm 将请求正文解析为 multipart/form-data。整个请求正文被解析,其文件部分的最多 maxMemory 字节存储在内存中,其余部分存储在磁盘中的临时文件中。 ParseMultipartForm 在必要时调用 ParseForm。一次调用 ParseMultipartForm 后,后续调用无效。

什么时候删除内存和/或临时文件?

【问题讨论】:

    标签: go


    【解决方案1】:

    请求完成后一切都被释放。

    内存缓冲区将可用于垃圾回收,并且在请求结束时调用 MultipartForm.RemoveAll() 将删除所有临时文件。

    【讨论】:

    • 我将 multipart.File 与 struct 一起传递,根据定义,GC 在请求结束时不会清除,对吧?
    • @dvd:如果您有对 multipart.File 的引用,则无法收集。一旦没有更多的参考文献,它就有资格被收集。这就是垃圾收集的重点
    • 在调用RemoveAll() 之前记得Close() 任何文件,否则文件将一直浮动在您的临时目录中。
    • 我可以将这些临时文件重命名到另一个目录吗??
    猜你喜欢
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 2014-02-01
    • 2016-06-22
    • 2015-11-01
    • 2016-10-01
    相关资源
    最近更新 更多