From dc9dd9ecb0eac0a27c74591013ea0858be26168f Mon Sep 17 00:00:00 2001 From: Moe Date: Mon, 8 Oct 2018 15:15:31 -0700 Subject: [PATCH] Fix "File Delete Error" caused by permission issue+ --- libs/monitor.js | 4 ++-- libs/socketio.js | 6 ++++-- libs/videos.js | 7 +++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/libs/monitor.js b/libs/monitor.js index 10e6f413..86724924 100644 --- a/libs/monitor.js +++ b/libs/monitor.js @@ -530,7 +530,7 @@ module.exports = function(s,config,lang){ fs.mkdirSync(e.dir); } } - exec('chmod -R 777 '+e.dir,function(err){ + fs.chmod(e.dir,0o777,function(err){ }) //set the temporary files directory @@ -548,7 +548,7 @@ module.exports = function(s,config,lang){ } } setStreamDir() - exec('chmod -R 777 '+e.sdir,function(err){ + fs.chmod(e.sdir,0o777,function(err){ }) return setStreamDir diff --git a/libs/socketio.js b/libs/socketio.js index fefa0170..d109d6ec 100644 --- a/libs/socketio.js +++ b/libs/socketio.js @@ -333,8 +333,10 @@ module.exports = function(s,config,lang,io){ cn.emit('segment', data); }; cn.closeSocketVideoStream = function(){ - mp4frag.removeListener('segment', onSegment) - mp4frag.removeListener('initialized', onInitialized) + if(mp4frag){ + mp4frag.removeListener('segment', onSegment) + mp4frag.removeListener('initialized', onInitialized) + } } cn.on('MP4Command',function(msg){ switch (msg) { diff --git a/libs/videos.js b/libs/videos.js index 84bd3168..0f4966ef 100644 --- a/libs/videos.js +++ b/libs/videos.js @@ -156,6 +156,9 @@ module.exports = function(s,config,lang){ ] s.sqlQuery('INSERT INTO Videos (mid,ke,time,ext,status,details,size,end) VALUES (?,?,?,?,?,?,?,?)',save,function(err){ if(callback)callback(err) + fs.chmod(k.dir+k.file,0o777,function(err){ + + }) }) //purge over max s.purgeDiskForGroup(e) @@ -188,7 +191,7 @@ module.exports = function(s,config,lang){ s.sqlQuery('SELECT * FROM Videos WHERE `mid`=? AND `ke`=? AND `time`=?',queryValues,function(err,r){ if(r && r[0]){ r = r[0] - exec('chmod -R 777 '+e.dir+filename,function(err){ + fs.chmod(e.dir+filename,0o777,function(err){ var deleteRow = function(){ s.tx({ f: 'video_delete', @@ -205,7 +208,7 @@ module.exports = function(s,config,lang){ } }) } - exec('rm '+e.dir+filename,function(err){ + fs.unlink(e.dir+filename,function(err){ if(err){ s.systemLog(lang['File Delete Error'] + ' : '+e.ke+' : '+' : '+e.id,err) }else{