【问题标题】:Handling file requests and availability处理文件请求和可用性
【发布时间】:2012-11-17 12:38:06
【问题描述】:

我见过很多网站使用的文件保护方法,例如 youtube、文件托管网站、音乐网站、facebook.. 他们正在使用特殊的方式来控制文件的可用性......

链接看起来像这样,

http://www.mysite.com/music/audio.mp3?Expires=1354180089&Key=APKAIKAIRXBA2H7FXITA

expiry之后,文件不再可用,所以想要使用该文件的用户必须用新的过期代码再次请求它......这样可以避免在其他情况下非法使用该文件网站,它将保护带宽...

当使用这种方式时,文件不会像 http://www.mysite.com/music/audio.mp3

那样永远​​可用

我到处搜索教程,但我找不到任何....帮帮我...

【问题讨论】:

  • 这看起来很像 Amazon S3 样式的链接。
  • 有什么教程可以学习创建这种风格的链接吗?
  • 当然,请查看 S3 的开发人员指南,了解有关过期链接的信息。

标签: php javascript ajax file jquery


【解决方案1】:

在这种情况下,audio.mp3 不是真正的 mp3 文件,它是一个脚本,它检查会话过期时间,如果它有效,则生成正确的标题,并打印出位于某处的真正 mp3 文件服务器并且只有脚本可以访问它。类似这样的伪代码:

  if (session valid) {
       //set the right header;
       //print out the mp3 file;
  } else {
       //text/html header;
       //print the message about session being invalid;
  }

【讨论】:

  • 是的,但是如果会话有效,它将产生文件的真实位置,所以如果有人知道他可以使用它而不是受保护的链接??所以我必须在每次生成会话时复制文件,并且在会话结束时我还必须删除它......但是如果 100 个用户一次请求相同的 10mb 文件怎么办,我将用完网络服务器空间。 .
  • 您不是每次都复制文件,而是打印文件或将其作为流发送给用户。基本上你阅读 mp3 文件内容并用正确的标题打印它
猜你喜欢
  • 1970-01-01
  • 2012-09-23
  • 2016-04-09
  • 1970-01-01
  • 1970-01-01
  • 2010-12-02
  • 1970-01-01
  • 2015-03-15
  • 1970-01-01
相关资源
最近更新 更多