Php 在CloudFront中使用私有ACL?

Php 在CloudFront中使用私有ACL?,php,amazon-s3,acl,amazon-cloudfront,Php,Amazon S3,Acl,Amazon Cloudfront,我正在开发一个web应用程序,其中视频文件存储在AmazonS3上,使用CloudFront是一个可选功能,可以随时打开和关闭 我有一堆视频文件设置了私有ACL,我使用签名URL来访问它们。这很有效 然而,我想在这个bucket上创建一个CloudFront RTMP发行版,但是每次以编程方式更新每个(可能远远超过300个)对象的ACL是很困难的(并且所有请求都需要很长时间才能发生,因为您不能批处理,对吧?) 有没有办法: 在一次调用中批量设置ACL 设置bucket访问策略,以便CloudF

我正在开发一个web应用程序,其中视频文件存储在AmazonS3上,使用CloudFront是一个可选功能,可以随时打开和关闭

我有一堆视频文件设置了私有ACL,我使用签名URL来访问它们。这很有效

然而,我想在这个bucket上创建一个CloudFront RTMP发行版,但是每次以编程方式更新每个(可能远远超过300个)对象的ACL是很困难的(并且所有请求都需要很长时间才能发生,因为您不能批处理,对吧?)

有没有办法:

  • 在一次调用中批量设置ACL
  • 设置bucket访问策略,以便CloudFront可以读取bucket中的任何私有文件
我尝试创建一个源访问标识,然后将其添加到bucket的访问控制策略中,但这似乎不起作用

最后,当我将URL发送到视频播放器时,我是否还需要对其进行签名


这一切都需要用PHP编程完成,因此使用CloudBerry等工具对我来说毫无帮助。

这是一个有用的入门指南,它告诉我如何设置私有发行版:

您可以通过AWS API在一系列视频中循环设置ACL(我不认为这可以批量完成,即使BucketExplorer在队列中也可以这样做)。您只需要在每个文件上设置一次ACL。您需要确保将访问权限授予您在发行版的源访问标识中拥有的规范用户。这样,发行版就可以从S3源访问受保护的文件。然后需要设置密钥对和可信签名者

每次有人访问视频时,您都需要对URL进行签名。有许多可用的脚本。这是Ruby的有用指南,但您可以很容易地用PHP重写代码: