Как автоматически удалить временные файлы в ruby-rails? - PullRequest
5 голосов
/ 30 марта 2009

Приложение My Rails должно обрабатывать и генерировать файлы PDF XFA и отправлять их пользователю / браузеру. Работает нормально. Но проблема в том, что перед отправкой файла пользователю он создает 2 файла в каталоге rams tmp.

Если в pdf_controller поступит 10 запросов, количество временных файлов в каталоге tmp удвоится, и это займет место.

Обыскав вокруг, я подумал, что Sweeper придет на помощь. Но не так много знаний о Sweeper.

Итак, кто-нибудь может предложить, какой путь выбрать?

Ответы [ 2 ]

5 голосов
/ 30 марта 2009

Tempfile удалит файлы, когда объект будет завершен.

Tempfile на Rdoc

Пример:

def get_pdf
  model = Model.find(params[:id])
  file = Tempfile.new
  model.to_pdf(file)
  send_file file.path, ...
end

Я могу привести лучший пример, если вы вставите свой код в ваш вопрос.

1 голос
/ 30 марта 2009

Вы можете использовать задачу cron, которая удаляет файлы каждые n минут, или вы можете заказать удаление с самого контроллера.

...