如果新文件创建,Rails 3.1资产管道需要重启?

时间:2011-08-25 21:42:53

标签: ruby-on-rails ruby ffmpeg ruby-on-rails-3.1

我有一台服务器正在使用网络摄像头拍摄视频片段并将其放入#{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 个答案:

答案 0 :(得分:1)

Rails期望public/仅包含rails服务器启动时(或在rails初始化期间构建并放置在那里)的所有静态资产,并且在部署新代码之前不会更改。

如果您希望将视频文件与Rails配合使用,则需要使用其他存储系统来存储视频文件。您需要更新Rails应用程序以了解如何处理另一个存储系统。

Amazon S3和Rackspace云文件是不错的选择,但服务器上的一个众所周知的目录也可以正常工作(它不能是public/)。您可以使用CarrierWave gem来提供帮助。