Как я могу получить рельсы для правильного обслуживания видео с помощью send_file? - PullRequest
1 голос
/ 07 декабря 2011

Это требование проекта, чтобы некоторые ресурсы не были публично доступны, поэтому я передаю их через AssetsController, например:

  def show
    asset = Asset.find(params[:id])
    unless Article.viewable_by(current_user).find_by_id(asset.attachable_id).nil?
      send_file asset.data.path(style = params[:style]), :type => asset.data_content_type, :disposition => 'inline' #THIS
    else
      head(:forbidden) and return
    end
  end

Работает нормально для изображений.Видео не воспроизводится в браузере.Они отлично работают, когда обслуживаются из /public.

Вот некоторые скриншоты (открываются ресурсы, открыта вкладка сети в инструментах разработчика Chrome)

Работает (играетвсе еще видят отмененные запросы)

enter image description here

Broken

Broken

Вот что Apache должен сказать оit:

[ pid=2796 thr=140722427586528 file=ext/apache2/Hooks.cpp:784 time=2011-12-06 21:36:57.803 ]: Either the vistor clicked on the 'Stop' button in the web browser, or the visitor's connection has stalled and couldn't receive the data that Apache is sending to it. A$

Я сделал два запроса и получил несколько из них для каждого.

Есть идеи?

...