2012-08-09 151 views
4

我有一個使用Carrierwave,S3和rmagci的應用程序。 或多或少跟在http://railscasts.com/episodes/253-carrierwave-file-uploads之後,但只是上傳到S3而不是本地。imagemagick不會刪除tmp文件

我注意到在創建圖像後,public/uploads /中的臨時文件不會被刪除。這會導致我的電腦隨着時間的推移而崩潰。

我環顧四周,我發現唯一的解決辦法是寫一個cron作業來刪除它們http://www.imagemagick.org/discourse-server/viewtopic.php?f=2&t=15960

,如果有更好的方法的代碼,而不是一個cronjob要做到這一點任何想法?

回答

4

截至2013年1月,沒有正式的方法來刪除臨時文件,因此imagemagic會讓您自己去做。自從臨時文件大小超過10 GB後,我還使用每20分鐘運行一次的cron作業。

+1

如果你能分享這些命令,那將會很棒;) – codersofthedark 2014-12-01 11:02:32

+0

'sudo find/tmp/-name「magick- *」-type f -delete'這會完成這項工作,並且將它作爲更好的答案發布能見度 – 2016-09-12 08:22:49

1

使用基於任務的方法總是更好,而不是通過刪除東西來阻塞運行時。每天只運行一次任務。

5

這意味着您的ImageMagick安裝無法正常工作!

它在tmp中保留magick- *文件的事實表明ImageMagick進程死了,這就是爲什麼它沒有刪除這些文件。您應該配置的內存限制等。參見http://www.imagemagick.org/script/resources.php

2

我有這個問題了一段時間,我的代碼的問題是,我沒有使用破壞功能:

$im->destroy(); 

當調用destroy功能,它將刪除在/tmp目錄下生成的臨時文件。 這是PHP的,也許它會幫助別人。