node 上传图片 造成linux 缓存区内容过多 怎么解决?
高洛峰
高洛峰 2016-11-09 15:34:13
0
2
687

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

上传图片核心代码:

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不太熟悉,有办法也可以说出来。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

reply all (2)
代言

你可以把图片写到一个大文件里,每次读取文件的时候从大文件里读。

    三叔

    使用计划任务,注意用户有没有权限删除

    # 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天本身)被更改过内容的文档名;


      Latest Downloads
      More>
      Web Effects
      Website Source Code
      Website Materials
      Front End Template
      About us Disclaimer Sitemap
      php.cn:Public welfare online PHP training,Help PHP learners grow quickly!