Нужно перезагрузить конвейер ресурсов Rails 3.1, если новый файл создан? - PullRequest
0 голосов
/ 26 августа 2011

У меня есть сервер, который снимает видеоролики с веб-камеры и помещает их в #{Rails.root}/app/assets/videos.Проблема в том, что я не вижу вновь созданные видеоклипы, пока сервер не будет перезагружен.Есть ли обходной путь для этого?

Вот код в контроллере:

@file_name = Time.now.strftime("%Y-%m-%d_%H-%M-%S-%p") + ".mp4"
system("ffmpeg -f video4linux2 -s 320x240 -t 10 -i /dev/video0
  #{Rails.root.to_s}/app/assets/videos/#{@file_name}")

И в представлении:

<video src="/assets/<%= @file_name %>" width="320" height="240">
Your browser does not support the video tag.
</video>

1 Ответ

1 голос
/ 26 августа 2011

Rails ожидает, что public/ содержит только статические ресурсы, которые находятся там при запуске сервера rails (или создаются и размещаются там во время инициализации rails) и не изменятся, пока не будет развернут новый код.

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

Amazon S3 и Rackspace Cloud Files - это неплохой выбор, но хорошо известная директория на вашем сервере также может работать (это простоне может быть public/).Вы можете использовать драгоценный камень CarrierWave, чтобы помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...