2017-07-10 3 views
1

Szenario: Mein Webserver hat eine begrenzte Bandbreite. Ein Benutzer lädt eine große Datei auf meinen Nodejs-Server hoch. Ich annulliere es, nachdem ich erkannt habe, dass die Größe zu groß ist.Wie können wir verhindern, dass ein Benutzer eine Datei hochlädt und Bandbreite verbraucht?

Wie würde ich den Upload abbrechen und keine weitere Bandbreite vom Multipart-Upload des Benutzers verbrauchen?

Würde req.removeAllListeners() den Job in diesem Szenario tun?

+1

Wie wäre es mit '' req.abort() '? – jfriend00

+1

'req.removeAllListeners()' kann Sie davon abhalten, mehr Datennachrichten zu hören, aber es wird nicht unbedingt verhindern, dass die Daten gesendet werden und Ihre Bandbreite verwendet wird. Sie müssen die Verbindung trennen, um das Senden zu verhindern. – jfriend00

Antwort

1

Wenn Sie multer für Datei-Upload verwenden, können Sie einfach die Datei-Größe begrenzen, indem Sie, etwas Ähnliches wie:

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

Und gleiche kann mit body-parser für alle anderen Arten von Anfragen erfolgen , indem Sie:

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

und gleiche mit raw und text.

Verwandte Themen