Я пытаюсь загрузить некоторые файлы с помощью busboy, если я запускаю свое приложение nodejs локально, оно работает очень хорошо, но если я докеризую это приложение и протестирую его, процесс загрузки никогда не войдет в busboy при событии fini sh , Кто-нибудь может мне помочь? Я пробую разные модули для загрузки и никогда не работает. Я что-то забыл?
busBoyCreateProjectUpload(req){
return new Promise((resolve, reject) => {
logger.log({message:'Process busboy', level:'info'});
const busboy = new Busboy({ headers: req.headers });
let files = 0, finished = false;
let projName=""
let json = {};
busboy.on('field', function(fieldname, val) {
logger.log({message:'Process busboy inside field function with key: '+fieldname, level:'info'});
json[fieldname] = val;
if(fieldname=="projName"){
projName=inspect(val).replace(/[\']/g,"");
}
});
busboy.on('file', async function (fieldname, file, filename) {
let path="";
if (fs.existsSync(`${process.env.archiveDirectoryTemp}/${projName}/${process.env.assets}`)) {
if (filename.includes('mp4')) {
logger.log({message:'Process busboy inside upload function with file: '+filename, level:'info'});
logger.log({message:`mkdir ${process.env.archiveAssets}/${projName}`, level:'info'});
await makeDirPromisified(`${process.env.archiveAssets}/${projName}`, { recursive: true });
path = `${process.env.archiveAssets}/${projName}/${filename}`;
} else {
logger.log({message:'Process busboy inside upload function with file: '+filename, level:'info'});
path = `${process.env.archiveDirectoryTemp}/${projName}/${process.env.assets}/${projName}/${filename}`;
}
++files;
logger.log({message:'Uploading file: '+filename, level:'info'});
const fstream = fs.createWriteStream(path);
file.pipe(fstream);
file.resume();
fstream.on('close', function() {
files--;
file.close();
logger.log({message:"Upload Finished of " + filename, level:'info'});
if(files == 0 && finished){
logger.log({message:"Writing finished", level:'info'});
resolve(json);
return;
}
});
}else{
reject("Error js/res folder does not exist in generated template");
return;
}
});
busboy.on('finish', function() {
logger.log({message:'Process busboy finished', level:'info'});
finished = true;
});
return req.pipe(busboy);
});
},