6

我有一个使用 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

4 回答 4

5

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

于 2013-01-19T00:57:04.247 回答
5

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

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

于 2013-11-10T02:07:10.003 回答
3

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

$im->destroy();

调用destroy函数时,它将删除/tmp目录下的临时文件。这是针对 PHP 的,也许它会对某人有所帮助。

于 2015-03-16T23:59:51.277 回答
1

使用基于任务的方法总是更好,而不是因为删除东西而阻塞运行时。只需每天运行一次任务。

于 2012-08-09T00:26:17.093 回答