我现在正在创建需要从S3播放视频并使用html5视频显示的网络服务。
作为业务逻辑,它不能允许直接访问,因为我不希望用户知道视频数据来自何处并访问它。这意味着我不想使用redirect_to
。为了达到这个目的,我想如果Rails使用206 partial content
的任何流媒体逻辑拦截视频数据流。总而言之,模仿直接访问S3。
然而,我实际上还没有做过这种事情,所以我想知道一些有用的,信息丰富的资料或技术,你们已经尝试或知道。
目前,我正在尝试实现类似下面的内容,但仍然感觉很好。需要一些建议。
class VideoController < ApplicationController
include ActionContoller::Live
...
def source
s3 = Aws::S3::Client.new
s3.get_object(bucket "mybucket", key: "myvideo") do |chunk|
response.stream.write chunk
sleep 1
end
ensure
response.stream.close
end
...
end