Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

203
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda