Ich benutze busboy, meine hochgeladene Datei in einen Puffer schreiben und eine Überprüfung darauf (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.Knoten Busboy Abbrechen Hochladen
Zum Beispiel, wenn ich 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.
var self = this;
var busboy = new Busboy({
headers: self.req.headers,
limits: {
files: 1
}
});
busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
file.fileRead = [];
var size = 0;
file.on('data', function(chunk) {
size += chunk.length;
/* DO VALIDATION HERE */
if(size > 500000) {
/*** ABORT HERE ***/
}
file.fileRead.push(chunk);
});
file.on('end', function() {
var data = Buffer.concat(file.fileRead, size);
// ... upload to S3
});
self.req.pipe(busboy);
});
Sie können die Dateigröße begrenzen als ein Parameter busyboy - es ist nur eine 'fileSize' Eigenschaft ... –
Was passiert, wenn ich Möchten Sie die Breite und Höhe der Datei überprüfen? Ich müsste den Stream dann abbrechen, anstatt auf das Limit-Ereignis zu zählen. – imns
Ich habe einen Post über dieses _Somewhere_ in meinem angenommenen Kopfgeld, aber es benutzt nicht Busbuy. –