我正在开发一个网络应用程序,其中视频文件存储在Amazon S3上,使用CloudFront是一个可选功能,可以随时打开和关闭。
我有一堆用私有ACL设置的视频文件,我使用签名的URL来访问它们。这很有效。
但是,我想在该存储桶上创建一个CloudFront RTMP分发,但是每次以编程方式更新每个(可能超过300个)对象的ACL很困难(并且需要很长时间才能完成所有请求因为你不能批量做,对吗?)。
有没有办法:
我尝试创建一个Origin Access Identity,然后将其添加到存储桶的访问控制策略中,但这似乎不起作用。
最后,当我将这些网址发送到视频播放器时,我仍然需要对其进行签名吗?
这一切都需要在PHP中以编程方式完成,所以使用CloudBerry,不幸的是这对我没有帮助。
答案 0 :(得分:0)
这是一个有用的入门指南,它讲述了如何设置私有分发: http://www.bucketexplorer.com/documentation/cloudfront--how-to-create-private-streaming-distribution.html
您可以通过AWS API在一系列视频中循环设置ACL(我不认为这可以批量完成,即使BucketExplorer在队列中执行此操作)。您只需要在每个文件上设置一次ACL。您需要确保授予对原始访问标识中的Canonical用户的访问权限以进行分发。这样,分发可以从S3源访问受保护的文件。然后,您需要设置密钥对和可信签名者。
每次有人访问视频时,您都需要对网址进行签名。有许多脚本可用。这是Ruby的有用指南,但你可以很容易地用PHP重写代码: http://r2d6.com/posts/1301220789-setting-up-private-streaming-with-cloudfront-and-ruby-on-rails