Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

204
Views
El archivo permanece en mi carpeta después de eliminarlo pero se elimina después de reiniciar Node JS

Tengo una función que recorre una matriz que contiene rutas a archivos, luego elimino cada uno de ellos. Los archivos se cargan con Multer en una carpeta "assets/temp/". Aquí está mi método de eliminación usando fs:

 exports.unlinkFiles = (filesPathsArr) => { try { filesPathsArr.forEach((filePath) => { if (fs.existsSync(filePath)) { fs.unlinkSync(filePath) console.log('File deleted : ', filePath) } }) } catch (error) { throw error } }

Mi entrada por ejemplo:

 ['assets\temp\pexelsphoto19886811645117462309.jpg', 'assets\temp\relaxtriptest1645118333937.mp3']

Mi salida:

 File Deleted : assets\temp\pexelsphoto19886811645117462309.jpg File Deleted : assets\temp\relaxtriptest1645118333937.mp3

Pero en mi carpeta temp :

ingrese la descripción de la imagen aquí

+ Y si trato de abrir el archivo, dice 'Habilitar para leer...'

+ Cuando reinicio el servidor, el archivo simplemente desaparece

¿Es solo un problema local con mi máquina, tal vez el problema desaparezca en producción? ¿O tal vez es solo un pequeño detalle del que no debería preocuparme? O es otra cosa ?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

¡Resolví el problema!

Después de cargar el archivo con Multer, lo subo a AWS S3.

Pero el problema es que si hay un error con el código de AWS, lanzo una excepción y luego elimino los archivos cargados del directorio temporal. Pero al hacer esto, no dejé que la función de AWS terminara y, por lo tanto, el flujo de lectura aún estaba abierto.

La solución entonces fue myReadStreamCreated.destroy() al final de la función y también en la captura del bloque try catch, si se lanza una excepción, para permitir que fs.unlink pueda eliminar el archivo correctamente.

Gracias a Ruby-novato

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!