imagemagick不会删除tmp文件

时间:2012-08-09 00:13:05

标签: imagemagick carrierwave rmagick

我有一个使用Carrierwave,S3和rmagci的应用。 或多或少跟随http://railscasts.com/episodes/253-carrierwave-file-uploads,但只是上传到S3而不是本地。

我注意到在创建图像后,public / uploads /中的临时文件没有被删除。这会导致我的计算机随着时间的推移而感到崩溃。

我环顾四周,找到的唯一解决办法就是写一个cron作业来删除它们http://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=15960

是否有更好的方法在代码而不是cronjob中执行此操作?

4 个答案:

答案 0 :(得分:5)

这意味着您的ImageMagick安装无法正常运行!

它在tmp中留下magick- *文件这一事实表明ImageMagick进程已经死亡,这就是它没有删除这些文件的原因。您应该配置内存限制等。请参阅http://www.imagemagick.org/script/resources.php

答案 1 :(得分:4)

截至2013年1月,没有官方方法可以删除临时文件,因此imagemagic让您自己动手。我还使用一个每20分钟运行一次的cron作业,因为临时文件大小超过10 GB。

答案 2 :(得分:3)

我有一段时间遇到这个问题,我的代码问题是我没有使用destroy函数:

$im->destroy();

调用destroy函数时,它将删除在/tmp目录下生成的临时文件。 这适用于PHP,也许它可以帮助某人。

答案 3 :(得分:1)

最好使用基于任务的方法,而不是通过删除内容来阻塞运行时。只需每天运行一次任务。