2017-07-10 3 views
1

シナリオ:私のWebサーバーの帯域幅は限られています。ユーザーが大きなファイルをnodejsサーバーにアップロードしています。私はサイズが大きすぎることを認識した後にそれを無効にします。ユーザがファイルをアップロードして帯域幅を消費するのを防ぐにはどうすればよいですか?

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

私はアップロードを中断し、ユーザのマルチパートアップロードからそれ以上の帯域幅を消費しません。

req.removeAllListeners()はこのシナリオでジョブを実行しますか?

+1

について: 'req.abort()'? – jfriend00

+1

'req.removeAllListeners()'は、より多くのデータメッセージを聞くのをやめさせるかもしれませんが、必ずしもデータの送信や帯域幅の使用を停止するとは限りません。より多くの送信を防ぐには、接続を切断する必要があります。 – jfriend00

答えて

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と同じ。

関連する問題