我有一个坐在nginx web服务器上的rails网络应用程序。我在我的服务器上有一些音频文件,我希望人们能够听到它们,并能够从这一点上寻找音频文件的任何部分来收听。如何在没有直接链接的情况下流式传输音频文件
简单吧?
我在我的html5音频元素的src中使用了直接链接。它效果很好。该文件可以播放和寻找工作。
输入安全性和可审核性。
我的音频文件很敏感。我只希望某些人能够听到他们。我也需要知道他们每次听到他们。突然公共目录不起作用。
输入rails的send_file。
Send_file最初看起来正是我所需要的。它允许rails为我的音频文件提供服务,并且可以将我的文件保存在受保护的目录中,我可以检查当前用户的权限,并且可以创建适当的审计线索。除...
用send_file我找不到。这是一个交易断路器。
一些stackoverflow问题的地址获取send_file来处理HTTP范围/字节范围请求。我回顾的是:
what is the proper way to serve mp4 files through rails...
rails media file stream accept byte range request through send file ...
做更多的研究之后,我发现下面的博客文章: https://blog.echoplex.us/2014/08/19/so-you-want-to-stream-videoaudio-with-rails/
TL;博士 不使用导轨由send_file服务媒体。不要试图让它像stackoverflow问题说你可以。相反,使用nginx和X-Accel-Redirect,并最终得到一个类似于你的请求流水线 - >你正在考虑采取他的方法,但不知道如果有更好的方法来做到这一点。
我有什么选择?
(也,你可以假设我使用轨道和Nginx的当前版本)
你解决了这个问题吗? – Anatoly 2015-09-22 22:24:22
好吧,它已经有一段时间了。我想我们最终可能会用S3来提供音频文件。所以没有很好的与铁轨有关的答案。我必须回到代码才能确定。 – 2015-09-23 18:12:57