【问题标题】:are temporary files temporal? if so how long?临时文件是临时文件吗?如果是,多长时间?
【发布时间】:2018-08-30 16:27:07
【问题描述】:

我正在构建一个允许用户上传小于 5MB 文件的网络应用程序,为此我正在使用 Request.ParseMultipartForm(5000000),但我想知道如果一个有趣的东西会发生什么小伙尝试上传大于 5MB 的文件,文档不够清晰https://golang.org/pkg/net/http/#Request.ParseMultipartForm

整个请求正文被解析,最多 maxMemory 字节的文件部分存储在内存中,其余部分存储在磁盘中的临时文件中

那么,“临时文件”到底意味着多长时间?因为它有点模棱两可,这是否意味着在处理函数返回后剩余的文件将被擦除?还是意味着已经确定了一生?如果有人尝试这样做并且我的磁盘空间不足,我不希望我的应用程序崩溃。

【问题讨论】:

    标签: go multipartform-data temporary-files


    【解决方案1】:

    临时文件在请求期间有效。表单的解析和临时文件的创建由mime/multipart 包处理。

    当服务器完成请求时,它会调用Form.RemoveAll 删除与表单数据关联的所有临时文件。

    【讨论】:

    • 有没有办法首先停止写入临时文件?
    • @JohnBalvinArias 设置 maxMemory 如此之大,以至于所有内容都可以放入内存中。
    • 但那会更糟,这是相同的场景,但现在它是记忆
    • @JohnBalvinArias:你到底想做什么?如果您想读取整个表单,内存或临时文件是唯一可能的目的地。
    • 如果您想自己阅读每个部分,请使用MultiPartReader。如果您想完全限制请求正文大小,请使用MaxBytesReader
    猜你喜欢
    • 2012-06-28
    • 2011-03-10
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多