设置所有者ACL在谷歌云存储从谷歌应用引擎PHP


Setting owner ACL on Google Cloud Storage from Google App Engine PHP

当我从PHP Google App Engine实例在Google Cloud Storage中创建对象时,没有设置所有者的ACL,使得以后无法更改缓存控制头等内容。

$options = ['gs' => ['acl' => 'public-read', 'Content-Type' => 'text/plain']];
$ctx = stream_context_create($options);
file_put_contents('gs://my_bucket/file.yadda');

我如何设置一个更详细的ACL设置,从PHP应用程序引擎,而不是使用预定义的云存储ACL魔术设置之一(public-read, owner-full-read-write等....)?

最简单的方法是使用桶的默认ACL设置,使桶上的默认ACL是您想要的。此时,任何未声明ACL的创建都将变为默认值。

你甚至不需要在PHP中运行任何东西来完成。您只需使用与现在相同的代码,不指定ACL,并使用gsutil使用以下命令自定义默认ACL:

gsutil defacl ch -u my-email@gmail.com:OWNER gs://«my_bucket»

更多信息在这里