Как удалить файлы по истечении определенного времени?

#javascript #node.js #mongoose #setinterval #multer

#javascript #node.js #мангуст #setinterval #мультер

Вопрос:

Вот код, который позволяет загружать файлы. Который я хочу удалить, если последний щелчок (определенный в download.js ) составляет 1 день.

 let storage = multer.diskStorage({
      destination: (req, file, cb) => cb(null, 'uploads/'),
      filename: (req, file, cb) => {
        const uniqueName = `${Date.now()}-${Math.round(Math.random() * 1E9)}${path.extname(file.originalname)}`;
        cb(null, uniqueName)
      }
    });
    
let upload = multer({
  storage: storage,
  limits: {
    fileSize: 16106119114
  },
}).single('file'); //100mb


router.post('/', (req, res) => {
  upload(req, res, async (err) => {
    if (err) {
      return res.status(500).send({
        error: err.message
      });
    }

    const file = new File({
      guploadBy: req.user.googleId,
      fuploadBy: req.user.facebookId,
      tuploadBy: req.user.twitterId,
      uploaderName: req.user.name,
      fileName: req.file.filename,
      originalName: req.file.originalname,
      provider: req.user.provider,
      path: req.file.path,
      fileSize: Math.round((req.file.size * (1 / 1000000))),
      adultContent: req.body.select,
      uuid_s: shortid.generate(),
      uuid_d: uuidv4()
    });
    const response = await file.save();

});
 

Ниже я написал код для удаления файлов после (lastClick 1 день), и это должно выполняться каждые 1 минуту.

 setInterval(findRemoveSync.bind(this,__dirname   '/uploads', {age: {seconds: 60}}), req.file.lastClick 86,400,000)
 

Кто-нибудь может сказать мне, что не так с моим кодом?

Комментарии:

1. Функция nodejs setInterval() принимает интервал в миллисекундах в качестве второго аргумента, поэтому ваш код будет выполняться каждые lastClick 86400000 миллисекунды