如何在不可下载和隐藏原始文件名/地址的情况下流式传输音频文件



我需要从服务器流式传输音频文件,但我不想要:

  • 内容在用户的电脑上是"可保存"的(我的意思是用户不应该下载文件并保存在他的电脑上,由于版权问题)

  • 地址&原始文件的名称,不应透露。

我尝试了这里提出的有趣的解决方案:

使用PHP 在stdout上将MP3流式传输到Jplayer

我用建议的代码创建了一个名为music.php的文件

在调用了脚本music.php之后,从任何浏览器的URL栏调用它,它就出现了多媒体阅读器。这出戏开局很好。

然后右键单击并另存为…,它会保存一个名为music.php 的文件

但是这个文件的内容,就是音频文件本身。因此,只需将其重命名为music.mp3,我就下载了原始的mp3:-/,这是我不希望它发生的。

请问,你有什么建议吗?

非常感谢

但我不希望:内容在用户的电脑上是"可保存的"

这是不可能的。如果你能播放,你可以录制并保存。

地址&原始文件的名称,不应显示

为什么?如果你提供了一个下载文件的脚本,那么你也可以很容易地下载。如果您的目的是阻止人们直接链接到文件,那么您可以检查Referer标头以确保请求来自您的网站。然而,如果任何人愿意,仍然可以通过不发送该标头来下载这些文件。

您还可以考虑AmazonS3的签名URL是如何工作的。HMAC用于创建一个经过签名的URL,该URL在一段时间后过期。URL有效,但前提是应用程序授予用户使用它的访问权限,并且仅在几分钟内或您指定的任何时间内使用。在您的情况下,如果您只允许登录用户访问您的音乐,那么简单的会话数据可能会有所帮助。你的问题并没有完全说明你想做什么,所以在你的情况下什么是有效的取决于你。

但是这个文件的内容,就是音频文件本身。因此,只需将其重命名为music.mp3,我就下载了原始的mp3://,这是我不希望它发生的。

再说一遍,这不是你能阻止的。即使你不遗余力地编写自己的流媒体方法,并使用Web Audio API或其他什么来播放它,捕捉数据甚至以数字方式录制音频仍然是微不足道的。

相关内容

最新更新