2011-08-25 4 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

레일은 public/ 모두있을 때 레일 서버가 시작 (또는 만 고정 자산을 포함 것으로 예상 빌드 및 레일 초기화 중에 거기에 배치) 새로운 코드가 배포 될 때까지 변경되지 않습니다.

Rails에서 제대로 작동하려면 비디오 파일을 저장하기 위해 다른 저장 시스템을 사용해야합니다. 다른 스토리지 시스템을 다루는 방법을 알기 위해 Rails 애플리케이션을 업데이트해야합니다.

Amazon S3 및 Rackspace Cloud Files는 괜찮은 선택이지만 서버의 잘 알려진 디렉토리도 사용할 수 있습니다 (단지 public/ 일 수 없음). CarrierWave gem을 사용하면 도움이됩니다.

관련 문제