2017-10-12 84 views
0

我建立了一个电子学习网站,并使用Amazon S3存储文件。亚马逊S3桶策略阻止下载?

我想:

•网站访问者可以观看视频•他们不能下载 视频**

我要补充哪些政策桶政策,先生?

我使用了下面的政策,但这个保持私密的视频,所以他们都无法观看和下载。

{ 
"Version": "2012-10-17", 
"Id": "Policy1459891655092", 
"Statement": [ 
    { 
     "Sid": "Stmt1459891443631", 
     "Effect": "Allow", 
     "Principal": "*", 
     "Action": "s3:GetObject", 
     "Resource": "arn:aws:s3:::mybucketname/public/*" 
    } 
] 

}

+0

必须先下载视频才能观看视频。 S3不是视频流服务。 – helloV

+0

欢呼,helloV。如何使用.ht访问来防止右键单击,先生? – Christopher

+0

你的用户如何“观看视频”?您使用什么技术向他们提供视频?它是将视频嵌入到HTML页面中,还是以某种方式提供服务?你想*任何人*被允许*观看*,或只选择用户?随意编辑您的问题以提供更多详细信息。 –

回答

2

S3可以提供受保护内容的流式传输。这是一个非常普遍的要求。

首先使用Amazon Elastic Transcoder将视频转码为HLS(HTTP实时流式传输)。用户然后使用支持连接到您的Web服务器的HLS的视频播放器或浏览器。存储在S3上的内容被加密。 HLS将视频分成许多小分段的多个分辨率。视频在播放过程中会根据许多因素动态变化,例如互联网速度的变化,设备分辨率等。CloudFront不需要提供HLS视频。

看看亚马逊的Elastic Transcoder和Apple的HLS查看器,让你开始。即使Microsoft Edge支持HLS。

+0

谢谢,约翰汉利:) – Christopher

0

不能使用S3策略,以防止下载,因为用户必须下载来查看它。 S3也不支持流媒体。但你可以结合AWS Cloudfront来串流你的S3视频。您只需设置允许AWS Cloudfront获取您的S3视频的权限,Cloudfront会将其缓存在边缘。用户可以通过Cloudfront网址流式传输视频。

Read this for more detail

第一个选项是非常容易实现,并通过刚刚 大约每移动设备和桌面支持。您只需将 内容放入S3存储桶并创建 指向存储桶的CloudFront分配。您的用户的视频播放器将使用CloudFront URL(可作为发行版的一部分访问)来请求视频 文件。该请求将根据用户位置 指向最佳边缘位置。 CloudFront将从其缓存中提供视频, 将其从S3存储桶中提取,如果尚未缓存的话。这 选项有几个缺点。它会使您的观众带宽使用效率低下。如果用户不费心去观看整个 视频,则永远不会看到内容仍然被下载。跳过 或快进也需要下载内容,可能 永远不会被看到。

+0

谢谢,BTuan。 :) – Christopher