【问题标题】:How can we prevent a user from uploading a file and consuming bandwidth?我们如何防止用户上传文件并消耗带宽?
【发布时间】:2017-12-13 15:03:58
【问题描述】:

场景:我的网络服务器带宽有限。一个用户正在将一个大文件上传到我的 nodejs 服务器。在意识到尺寸太大后,我将其无效。

req.on("data", (chunk) => {
    size += chunk.size;
    if(size > 100) {
         // how would I abort? 
    }
});

我将如何中止上传而不占用用户分段上传的任何更多带宽?

req.removeAllListeners() 会在这种情况下完成这项工作吗?

【问题讨论】:

  • 怎么样:req.abort()?
  • req.removeAllListeners() 可能会阻止您收听更多数据消息,但不一定会阻止数据发送和使用您的带宽。您需要断开连接以防止更多发送。

标签: node.js file file-upload multipartform-data


【解决方案1】:

如果您使用multer 进行文件上传,您可以通过以下方式轻松限制文件大小:

var upload = multer({
  storage: storage,
  limits: { fileSize: maxSize }
})

对于所有其他类型的请求,body-parser 也可以这样做:

app.use(bodyParser.json({limit: maxSize}));
app.use(bodyParser.urlencoded({limit: maxSize}));

rawtext 也一样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 2011-03-05
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    相关资源
    最近更新 更多