搜尋

首頁  >  問答  >  主體

node.js - node 上传图片 造成linux 缓存区内容过多 怎么解决?

  1. 项目使用node,运行在linux平台上。有一个图片上传的接口,图片上传使用formidable 应为上传的人多了,出现linux(/tmp 目录)过饱和的情况,请求帮助。

  2. 上传图片核心代码:

  var form = new formidable.IncomingForm();
    
    form.parse(req, function(err, fields, files) {
        var fileReadStream = fs.createReadStream(old_path); 
    
        var fileWriteStream = fs.createWriteStream(new_path);
        fileReadStream.pipe(fileWriteStream);
    })

现在的解决办法是linux 定期清理缓存区,我想的是node能定时清理内容。希望能在node上解决。linux不太熟悉,有办法也可以说出来。

伊谢尔伦伊谢尔伦2868 天前547

全部回覆(2)我來回復

  • 黄舟

    黄舟2017-04-17 15:18:20

    使用排程任務,注意使用者有沒有權限刪除

    # crontab -e

    每天凌晨3.30清理/tmp目錄下面修改時間在一週之前的檔案

    30 3 * * * * /usr/bin/find /tmp -mtime +7 -type f -exec rm -rf {} \;

    每週星期一和星期四凌晨3.30清理/tmp目錄下面有一週沒有访问過的檔案

    30 3 * * * 2,4 /usr/bin/find /tmp -atime +7 -type f -exec rm -rf {} \;

    find依時間戳記找出:

        以天为单位(time):
            -atime [+|-] # 访问
            -mtime [+|-] # 修改
            -ctime [+|-] # 表示被改变文件状态的时间
        以分钟为单位(min)
            -min [+|-]
            ...
            

    與時間有關的選項,共有-atime,-ctime與-mtime【-atime表示的是存取時間;-ctime表示被改變檔案狀態的時間;-mtime表示被修改檔案內容的時間】,
    以-mtime說明

    -mtime n:n为数字,意思是在n天之前的【一天之内】被更改过内容的文件;
    -mtime +n:列出在n天之前(不含n天本身)被更改过内容的文档名;
    -mtime -n:列出在n天之内(含n天本身)被更改过内容的文档名;
    

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-17 15:18:20

    你可以把圖片寫到一個大文件裡,每次讀取文件的時候從大文件裡讀。

    回覆
    0
  • 取消回覆