如何生成重复的视频流URL&;一小时后过期

如何生成重复的视频流URL&;一小时后过期,url,amazon-ec2,rails-3.1,Url,Amazon Ec2,Rails 3.1,场景:一位客户来到我的网站并购买视频。我生成了一个重复的流式URL,它可以工作一个小时,这样他就可以下载视频,然后URL链接自动过期 应用程序框架:Rails 3.1 托管环境EC2 选项: 在服务器端的特殊目录中将视频创建为文件,并直接链接到该文件。一小时后删除此临时文件。这可能不是一个很好的选择,例如,因为您需要文件的副本 当用户请求视频时,创建一个随机数(或散列),并将该数字与请求的文件和当前时间一起存储在数据库中。当用户访问下载链接时(例如http://page.com/download

场景:一位客户来到我的网站并购买视频。我生成了一个重复的流式URL,它可以工作一个小时,这样他就可以下载视频,然后URL链接自动过期

应用程序框架:Rails 3.1
托管环境EC2

选项:

  • 在服务器端的特殊目录中将视频创建为文件,并直接链接到该文件。一小时后删除此临时文件。这可能不是一个很好的选择,例如,因为您需要文件的副本

  • 当用户请求视频时,创建一个随机数(或散列),并将该数字与请求的文件和当前时间一起存储在数据库中。当用户访问下载链接时(例如http://page.com/download/some8374random1278hash),检查他请求的哈希是否存在于数据库中,以及创建它的时间是否不超过一小时。如果这是真的,则将所请求文件的文件内容返回到客户的浏览器


  • AmazonS3支持创建具有过期时间的经过身份验证的URL。您可以将视频保留在S3(非公开)上,然后在购买时生成经过验证的过期URL

    这样做的好处是,您的web服务器不必处理文件的所有下载。AmazonS3以与您从EC2实例提供服务相同的网络传输速率处理此问题


    EC2实例和S3之间的数据传输是免费的。

    集成Dropbox API如何?共享文件夹(其中包含购买的文件)并在一段时间后撤消共享权限

    链接到一个文件只需要一块元数据就可以了,所以链接是一个很好的选择。与服务器“本地”提供视频相比,使用Rails提供视频的OTOH将非常昂贵。