首页 > 解决方案 > 如何在一定时间后删除文件?

问题描述

这是允许上传文件的代码。如果 lastClick(在 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)

谁能告诉我我的代码有什么问题?

标签: javascriptnode.jsmongoosesetintervalmulter

解决方案


推荐阅读