2011-08-25 34 views
0

我有一台服务器正在使用摄像头拍摄视频剪辑并将它们放置在#{Rails.root}/app/assets/videos中。问题是我无法看到新创建的视频剪辑,直到服务器重新启动。有没有解决方法?如果创建新文件,Rails 3.1资产管道需要重新启动?

这里的控制器代码:

@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

Rails的预计,public/包含都在那里当轨道服务器启动(或仅仅是静态资产在rails初始化期间构建并放置在那里),并且直到部署新代码时才会更改。

如果您希望它能够与Rails一起使用,您将需要使用其他一些存储系统来存储视频文件。您需要更新Rails应用程序以了解如何处理其他存储系统。

Amazon S3和Rackspace云文件是不错的选择,但您的服务器上的着名目录可能也适用(它不能是public/)。您可以使用CarrierWave gem来提供帮助。