大きなファイル (~ 2 GB) をアップロードしようとしています。サーバーが巨大なファイルでクラッシュするのを防ぐために、Express から bodyParser を削除しました。クラッシュ エラーも断続的であるため、エラーが発生した時期と原因を特定することさえできません。
コードは次のとおりです。
channel = req.params.channel
models.channel.findOne name: channel, (err, show) ->
if err then console.log err
if show?
form = formidable.IncomingForm()
files = []
fields = []
form.uploadDir = __dirname + '/../public/videos/resources/'
form.on 'field', (field, value) ->
#console.log field + ' ' + value
fields.push [field,value]
form.on 'file', (field, file) ->
#console.log file
files.push [field, file]
form.on 'end', ->
for file in files
filename = file[1].name.replace /(.*)\//, ''
ext = file[1].name.replace /(.*)\./, ''
filename = uuid("#{filename}" + Date.now()) + ".#{ext}"
fs.renameSync file[1].path, form.uploadDir + filename
v = new models.video
v.channel_id = channel._id
v.title = 'Episode'
v.description = ''
v.url = filename
v.save (err,results) ->
if err then console.log err
res.send 200
form.parse req
else
res.send 403
アップロードが機能する場合もあれば、次のように爆発する場合もあります。
Error: parser error, 0 of 65536 bytes parsed
at IncomingForm.write (/Users/brendan/github/node_modules/formidable/lib/incoming_form.js:145:17)
at IncomingMessage.<anonymous> (/Users/brendan/github/node_modules/formidable/lib/incoming_form.js:95:12)
at IncomingMessage.emit (events.js:67:17)
at HTTPParser.parserOnBody [as onBody] (http.js:105:21)
at Socket.ondata (http.js:1506:22)
at TCP.onread (net.js:374:27)
他の誰かがこの問題を経験したことがありますか、またはこれの原因を知っていますか?