我有一个使用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中执行此操作?
答案 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)
最好使用基于任务的方法,而不是通过删除内容来阻塞运行时。只需每天运行一次任务。