1

我有一个音乐家客户,几年前我主要用 javascript 创建了一个音乐播放器网络应用程序/网站。

mp3 音频文件是通过常规 HTTP 下载获取的。

他注意到人们正在抄袭他的音乐并在其他地方使用他的曲目。

我想让人们更难从他们的专用 URL 中获取 mp3 文件。

我熟悉 Amazon S3 的查询字符串身份验证,并且正在考虑使用它。

我的计划是将请求的过期时间提前约 3 秒,以便播放器应用程序有时间开始下载,但如果用户尝试获取 URL 并稍后发出相同的请求,他们的尝试将被阻止。

我有两个担忧:

1) 到了过期时间,即使下载中途,是否会停止下载?还是会继续下载?

2)有没有更好的方法来做这样的事情?

4

2 回答 2

2

不可以,URL 在下载开始时必须是有效的。如果在下载过程中达到过期时间,则开始下载将完成。这是一个详细说明它的文档,虽然它是相关的 CloudFront 签名 URL,但对于 S3 查询字符串身份验证应该是相同的。(链接

请注意到期时间短。亚马逊服务器的时钟(至少我根据自己的经验知道 EC2 实例的时钟)往往有很大的不准确性(大约 10 秒/天)。您应该使用 ntp 来保持时钟同步。

于 2013-05-15T15:01:02.693 回答
1

使用查询字符串身份验证方法应该可以工作,并且一旦过期就不应停止下载。尽管有一点自动化,但它仍然是可以规避的。

最终,阻止文件重新分发的唯一方法是使用某种形式的加密或 DRM

于 2013-05-15T14:56:48.093 回答