我们如何阻止用户上传文件和消耗带宽?

时间:2017-07-10 01:19:21

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

场景:我的网络服务器带宽有限。用户正在将大文件上载到我的nodejs服务器。在意识到尺寸太大之后我失效了。

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

如何中止上传而不消耗用户分段上传的任何其他带宽?

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

1 个答案:

答案 0 :(得分: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相同。