Как я могу получить rails / ngnix для очистки файлов / tmp / RackMultipart *? - PullRequest
2 голосов
/ 01 декабря 2010

Когда пользователь загружает изображение, файлы, подобные этому, создаются в /tmp

RackMultipart20101130-1130-1l2q8dt-0
RackMultipart20101130-1130-1t11oa9-0
RackMultipart20101130-1130-59nrpq-0
RackMultipart20101130-1130-6jdqem-0
RackMultipart20101130-11807-1usq3d8-0  
RackMultipart20101130-11807-nns7dw-0

Как я могу заставить rails / nginx / passenger очистить эти файлы после завершения загрузки?

Я использую:

  • nginx 0.8.53
  • Phusion Passenger 2.2.15 (mod_rails / mod_rack)
  • Ruby on Rails 2.3.8
  • Скрепка ruby ​​gem для загрузки изображений

Ответы [ 2 ]

1 голос
/ 30 августа 2012

Если вы не хотите писать задачу Rake, я бы предложил установить пакет tmpreaper для debian / ubuntu. Его можно настроить для очистки /tmp так часто, как это необходимо (например, для удаления файлов, к которым не было доступа в последний час).

Основная проблема Papeclip # 902 была решена с выпуском Paperclip 3.1.0, после чего мы перестали видеть так много файлов RackMultipart *.

1 голос
/ 02 декабря 2010

Первое, что приходит на ум, это задача Rake с crontab, чтобы время от времени очищать каталог /tmp.

  1. Создайте новую задачу Rake в lib/tasks, которая удаляет файлы RackMultipart*.
  2. Выполняйте задачу Rake в виде crontab каждые X часов.
  3. (необязательно) Используйте Всякий раз, когда , чтобы упростить шаг 2 (довольно мощный в сочетании с Capistrano )

При этом было бы лучше попросить Paperclip очистить файлы, так как описанный выше подход может удалить временный файл, все еще используемый Paperclip, но я не знаю, как это сделать.

...