richardgirges / express-fileupload

Simple express file upload middleware that wraps around busboy
MIT License
1.52k stars 261 forks source link

intermittent failures with CSV upload #228

Closed splitice closed 4 years ago

splitice commented 4 years ago

Upload of icmp.csv (icmp.zip) with curl (approx 3/4 of uploads) results in:

curl http://blah/results -F result=@blah.csv -v
Error: Unexpected end of multipart data
    at ***/node_modules/dicer/lib/Dicer.js:62:28
    at processTicksAndRejections (internal/process/task_queues.js:79:11)

This could also be a dicer bug, could you please confirm and triage?

RomanBurunkov commented 4 years ago

Hi @splitice

I wasn't able to reproduce that. I've done 6 successful attempt. Test system: Ubuntu 18.04 & node 12

Example output:

Express-file-upload: Moving temporary file /projects/express-fileupload-project/temp/tmp-11-1594900915229 to /projects/express-fileupload-project/uploads/icmp.zip
Express-file-upload: Temporary file path is /projects/express-fileupload-project/temp/tmp-16-1594900917664
Express-file-upload: Opening write stream for sampleFile->icmp.zip...
Express-file-upload: New upload started sampleFile->icmp.zip, bytes:0
Express-file-upload: Uploading sampleFile->icmp.zip, bytes:64811...
Express-file-upload: Uploading sampleFile->icmp.zip, bytes:111035...
Express-file-upload: Temporary file path is /projects/express-fileupload-project/temp/tmp-18-1594900917666
Express-file-upload: Opening write stream for sampleFile1->tmp-17-1594900917666...
Express-file-upload: New upload started sampleFile1->tmp-17-1594900917666, bytes:0
Express-file-upload: Temporary file path is /projects/express-fileupload-project/temp/tmp-20-1594900917667
Express-file-upload: Opening write stream for sampleFile2->tmp-19-1594900917667...
Express-file-upload: New upload started sampleFile2->tmp-19-1594900917667, bytes:0
Express-file-upload: Upload finished sampleFile->icmp.zip, bytes:111035
Express-file-upload: Upload sampleFile->icmp.zip completed, bytes:111035.
Express-file-upload: Upload finished sampleFile1->tmp-17-1594900917666, bytes:0
Express-file-upload: Don't add file instance if original name and size are empty
Express-file-upload: Upload finished sampleFile2->tmp-19-1594900917667, bytes:0
Express-file-upload: Don't add file instance if original name and size are empty
Express-file-upload: Busboy finished parsing request.
req.files >>> {
  sampleFile: {
    name: 'icmp.zip',
    data: <Buffer >,
    size: 111035,
    encoding: '7bit',
    tempFilePath: '/projects/express-fileupload-project/temp/tmp-16-1594900917664',
    truncated: false,
    mimetype: 'application/x-zip-compressed',
    md5: '787cd52dc11f80b66af2629d9cbb4e9a',
    mv: [Function: mv]
  }
}
Express-file-upload: Moving temporary file /projects/express-fileupload-project/temp/tmp-16-1594900917664 to /projects/express-fileupload-project/uploads/icmp.zip