Los buffers de memoria se llenan cuando envío un archivo por streaming, aunque pasa un parámetro de ubicación de almacenamiento en disco

Intentando transmitir por secuencias a S3 usando skipper y skipper-s3 usando este código

image_upload : function (req,res) { // depends on bodyparser:skipper in confing/http.js console.log("Uploading image .. "); req.file('image') .upload({ adapter: require('skipper-s3'), key: KEY, secret: SECRET, bucket: 'mybucket', tmpdir: 'tmp/s3-multiparts' }, function whenDone(err, uploadedFiles) { if (err){ return res.negotiate(err); } else { dict = { files: uploadedFiles, textParams: req.params.all() } return res.ok(dict); } } ); }; 

Tengo 2 problemas:

Primero : cuando bash cargar algún archivo, puedo ver que este archivo se almacena en la memoria, en lugar de eso solo almacena en el disco (ruta agregada a las opciones).

En realidad, este es un gran problema, ya que mi memoria se llenará tan rápidamente cuando tengo muchos usuarios subiendo al mismo tiempo.

Segundo : mi aplicación se bloquea cuando la carga es más grande que 5MB, dándome este error

 eventos.js: 85
       lanzar er  // Evento 'error' no manejado
             ^
 Error: solicitud abortada
     en IncomingMessage.onReqAborted (~ Desktop / myApp / node_modules / sails / node_modules / skipper / node_modules / multiparty / index.js: 175: 17)
     en IncomingMessage.emit (events.js: 104: 17)
     en abortIncoming (_http_server.js: 279: 11)
     en Socket.serverSocketCloseListener (_http_server.js: 292: 5)
     en Socket.emit (events.js: 129: 20)
     en TCP.close (net.js: 485: 12)

Solución a su segundo problema: puede especificar el tamaño máximo de archivo que se cargará. El valor predeterminado es 5 MB.

 req.file('some_file').upload({ dirname: 'path to store the file',/* optional. defaults to assets/uploads I guess*/ saveAs: 'new file name', /* optional. default file name */ maxBytes: 5 * 1024 * 1024 //5 MB }, function(err, uploadedFiles) { }); 

Aunque no estoy seguro del primer problema. No es necesario especificar un tempdir en las opciones. Skipper-S3 de forma predeterminada escribe el archivo en /.tmp/s3-upload-part-queue para su propósito de carga. No veo por qué la memoria debe llenarse. ¿Es posible eliminar el tempdir y comprobar?