Потоковый файл, загруженный с помощью Express.js через gm, чтобы исключить двойную запись

Я использую Express.jsи у меня есть маршрут для загрузки изображений, размер которых мне нужно изменить. В настоящее время я просто позволяю Expressзаписать файл на диск (, который, как я думаю, использует node-formidableпод обложками ), а затем изменить размер с помощьюgm(http://aheckmann.github.com/gm/)который записывает вторую версию на диск.

gm(path)
 .resize(540,404)
 .write(dest, function (err) {... });

Я читал, что вы можете получить файловый поток node-formidableдо того, как он запишет его на диск, и, поскольку gmможет принимать поток, а не просто путь, я смогу передать это право, устранив двойная запись на диск.

Я думаю, что мне нужно переопределить form.onPart, но я не уверен, где (это должно быть сделано как промежуточное программное обеспечение Express? )и я не знаю, как получить доступ к formили что именно делать с part. Это скелет кода, который я видел в нескольких местах :

form.onPart = function(part) {
    if (!part.filename) { form.handlePart(part); return; }

    part.on('data', function(buffer) {

    });
    part.on('end', function() {

    }
}

. Может ли кто-нибудь помочь мне собрать эти две части вместе? Спасибо!

5
задан Bill 3 August 2012 в 17:54
поделиться