我建立了一个电子学习网站,并使用Amazon S3存储文件。
我想:
•网站访问者可以观看视频•他们无法下载 视频**
我应该在存储分区策略中添加哪个策略,先生?
我使用了以下政策,但这会将视频保密,因此他们都无法观看和下载。
{
"Version": "2012-10-17",
"Id": "Policy1459891655092",
"Statement": [
{
"Sid": "Stmt1459891443631",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucketname/public/*"
}
]
}
答案 0 :(得分:4)
S3可以提供受保护内容的流式传输。这是一个非常常见的请求。
首先,您使用Amazon Elastic Transcoder将视频转码为HLS(HTTP直播流)。然后,用户使用支持连接到Web服务器的HLS的视频播放器或浏览器。存储在S3上的内容是加密的。 HLS将视频分成多个分辨率的许多小段。视频在播放期间会根据诸如Internet速度,设备分辨率等变化等因素动态变化.CloudFront不需要提供HLS视频。
了解亚马逊的Elastic Transcoder和Apple的HLS查看器,让您入门。甚至Microsoft Edge也支持HLS。
答案 1 :(得分:1)
您无法使用S3策略阻止下载,因为用户必须下载才能查看。 S3也不支持流媒体。但您可以与AWS Cloudfront结合使用来流式传输S3视频。您只需设置允许AWS Cloudfront获取S3视频的权限,然后Cloudfront将在边缘缓存它们。用户可以通过Cloudfront URL流式传输视频。
第一个选项非常容易实现,并且仅受到支持 关于每个移动设备和桌面。你需要做的就是放 您在S3存储桶中的内容并创建一个CloudFront分配 指向桶。您用户的视频播放器将使用CloudFront 用于请求视频的URL(可作为分发的一部分访问) 文件。该请求将被引导至最佳边缘位置,基于 用户的位置。 CloudFront将从其缓存中提供视频, 如果尚未缓存,则从S3存储桶中获取它。这个 选项有几个缺点。它会使您的使用效率低下 观众的带宽。如果用户不打扰看整个 视频,内容永远不会被看到仍然下载。跳过前面 或快进还需要下载可能的内容 永远不会被人看见。