Knoten Busboy bricht den Upload ab

9

Ich benutze busboy , schreibe meine hochgeladene Datei in einen Puffer und führe eine Validierung durch (Breite, Höhe und Dateigröße) ). Ich kann nicht für das Leben von mir herausfinden, wie man den Strom abbricht / stoppt, sobald ich etwas mit dem Hochladen falsch finde.

Wenn ich zum Beispiel eine maximale Dateigröße von 500kb habe, die ich zulassen möchte, verfolge ich die Größe des Puffers beim Hochladen und möchte abbrechen, wenn die Größe über 500kb ist.

Hier ist eine vereinfachte Version meines Codes.

%Vor%     
imns 26.05.2015, 18:12
quelle

5 Antworten

5

Ok, also hatte ich das selbe Problem und löste es mit file.resume();

%Vor%     
Michael 26.08.2015 09:29
quelle
0

Ich würde so etwas versuchen:

%Vor%

Grundsätzlich habe ich ein neues Limit in der Konfiguration von Busboy hinzugefügt: fileSize: 500 * 1024

Und ich habe angefangen Limit Event zu hören:

%Vor%     
Rodrigo Moreno 29.05.2015 19:43
quelle
0

Die Antwort ist einfach.

%Vor%

Der Kontext ist dies. Ich sehe im Busboy-Code, dass busboy als WritableStream implementiert ist und darunter verwendet Dicer Modul zum Parsen, das auch als WritableStream implementiert ist. Der Ablauf ist wie folgt:

req stream == & gt; busboy == & gt; dicer == & gt; dicer löst Ereignisse aus == & gt; busboy löst Ereignisse in Datei == & gt; Diese Ereignisse werden in Ihrem Code verbraucht.

Um diesen ganzen Codefluss zu stoppen, sollte das obige Unpipe ausreichen.

    
Sushil 04.06.2015 06:21
quelle
0

Ich würde denken, das Richtige wäre, einfach den Socket zu schließen und die Anfrage zu beenden

%Vor%     
adeneo 05.06.2015 03:31
quelle
-1

Ich konnte auf den zugrunde liegenden Dicer Parser zugreifen, der eine ignore -Methode hat, die das Hochladen der Datei im Wesentlichen stoppt.

So habe ich es gemacht: busboy._parser.parser._ignore()

Es scheint sehr hackisch, aber es funktioniert und macht genau das, was ich wollte.

    
imns 10.06.2015 14:14
quelle

Tags und Links