2016-11-04 46 views
1

我有一个(php)网站,教师可以上传他们课程的录音,学生可以登录然后回放录音。如何使用php和s3共享无法下载的私人视频?

我想让这些视频更安全。目前,这些视频存储在我的服务器上,任何具有该URL的人都可以下载它们。所以,(1)我想将它们存储在无法使用url下载的地方。其次,我需要阻止他们右键点击并保存正在播放的视频。 我正在努力解决这个问题,但没有得到它...

这可能吗?是否需要使用特殊播放器?流式传输视频帮助(可以传输任何视频)吗?

我很感激帮助,我花了很多时间研究这个问题,随着我的进步,我变得更加困惑!

回答

1

有几个选项,你可能希望使用。

1.亚马逊CloudFront的RTMP分配

亚马逊CloudFront的是内容分发网络,全球接近缓存的内容给用户,在60多个地点。它还能够服务实时媒体播放(RTMP)协议。这意味着您的网页可以呈现媒体播放器(例如JW Player,Flowplayer或Adobe Flash),并且CloudFront可以提供内容。

参见:Working with RTMP Distributions

CloudFront的分布也可以服务于私人内容。您的应用程序可以生成一段时间内提供内容的网址。内容是通过媒体协议提供的,所以整个文件不能轻易下载

请参见:Serving Private Content through CloudFront

2.亚马逊S3前签署的网址

默认情况下,在Amazon S3中的所有对象都是私有的。然后,您可以添加权限,以便人们可以访问您的对象。这可以通过以下方式进行:

  • 对单个对象
  • 水桶策略的访问控制列表的权限(按照你上面)
  • IAM用户和组
  • 预签名URL

A Pre-Signed URL可用于授予对S3对象的访问权限,作为“覆盖”访问控制的一种方式。一个通常为私人的对象可以通过追加到期时间和签名通过URL访问。这是在不需要Web服务器的情况下提供私人内容的好方法。

与上面的CloudFront示例类似,您的应用程序可以生成一个URL,以便在有限的时间段内访问S3内容。一旦期限到期,预先签名的URL将不再起作用。但是,在活动期间,能够下载整个文件,因此这可能不适合您希望保护的视频内容。

+0

正确的流与云端声音。是否需要通过cloudfront进行流式传输,或者s3上托管的视频是否可以由播放器直接传输?我没有吨的人下载世界各地,所以我不关心最优分配 –

+0

您需要使用CloudFront - 它执行所有协议的东西,也可以保护您免受文件的直接下载。 (请注意,即使是流式文件也可以使用正确的软件进行保存。)如果您仍在AWS账户的前12个月内,则Amazon CloudFront将包含在[免费使用套餐](https:// aws。 amazon.com/free/)。 –