Как я могу получить rails/ngnix для очистки файлов /tmp/RackMultipart*?
Когда пользователь загружает изображение, такие файлы создаются в /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
- Скрепка рубиновый камень для загрузки изображений
2 ответа
Первое, что приходит на ум, это задача Rake с crontab, чтобы очистить /tmp
каталог время от времени.
- Создать новую задачу Rake в
lib/tasks
который удаляетRackMultipart*
файлы. - Выполняйте задание Rake в виде crontab каждые X часов.
- (необязательно) Используйте Whenever, чтобы упростить шаг 2 (достаточно мощный в сочетании с Capistrano)
При этом было бы лучше попросить Paperclip очистить файлы, так как описанный выше подход может удалить временный файл, все еще используемый Paperclip, но я не знаю, как это сделать.
Если вы не хотите писать задачу Rake, я бы предложил установить пакет tmpreaper для debian/ubuntu. Можно настроить для очистки /tmp
так часто, как нужно (например, для удаления файлов, к которым не обращались в последний час).
Основная проблема Papeclip #902 была решена с выпуском Paperclip 3.1.0, после чего мы перестали видеть так много файлов RackMultipart*.