gpt4 book ai didi

ruby-on-rails - 如何在没有直接链接的情况下流式传输音频文件

转载 作者:行者123 更新时间:2023-12-02 22:27:22 26 4
gpt4 key购买 nike

我有一个位于 nginx 网络服务器上的 rails 网络应用程序。我的服务器上有一些音频文件,我希望人们能够收听它们,并且能够从该点寻找音频文件的任何部分来收听。

简单吧?

我在 html5 音频元素的 src 中使用了直接链接。效果很好。该文件可以播放和搜索工作。

输入安全性和可审计性。

我的音频文件很敏感。我只希望某些人能够倾听他们的声音。我还需要知道他们每次听他们的时候。突然,公共(public)目录无法正常工作。

输入 rails 的 send_file。

Send_file 最初似乎正是我所需要的。它允许 rails 提供我的音频文件,我可以将我的文件保存在 protected 目录中,我可以检查当前用户的权限,并且我可以创建适当的审计跟踪。除了...

使用 send_file 我无法寻找。那是一个交易破坏者。

一些 stackoverflow 问题解决了让 send_file 处理 http-range/byte-range 请求。我审查的是:

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;博士
不要使用 rails send_file 来提供媒体服务。不要试图让它像stackoverflow问题所说的那样。相反,使用 nginx 和 X-Accel-Redirect,最终得到一个看起来像 you->nginx->rails->nginx->you 的请求管道

我正在考虑采用他的方法,但不知道是否有更好的方法来做到这一点。

我有哪些选择?

(另外,你可以假设我使用的是当前版本的 rails 和 nginx)

最佳答案

请不要使用发送文件。使用 X-Accel-Redirect 或以下建议。

Nginx secure_link 模块可帮助您通过私有(private)链接直接从磁盘提供文件。无需后端。完整的例子是 here .

关于ruby-on-rails - 如何在没有直接链接的情况下流式传输音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27319054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com