繁体   English   中英

通过 API 为未经身份验证的用户创建可读取的 Google 云存储桶

[英]Create Google cloud bucket with read for unauthenticated users via API

我需要通过 API 创建一个存储桶,其中的所有文件都必须对所有用户(甚至是未经身份验证的用户)可见(读取)。 我使用 PHP StorageClient

我试过的:作为 $storageClient->createBucket 选项参数传递

'iamConfiguration' => [
    "bindings" => [
        [
            "role" => "storage.objects.get",
            "members" =>["allUsers"]
        ]
    ]
],

要么

'iamConfiguration' => [
    "bindings" => [
        [
            "role" => "roles/storage.objectViewer",
            "members" =>["allUsers"]
        ]
    ]
],

'predefinedAcl' => 'publicRead',

甚至

'acl' => [
    ['entity' => 'allUsers', 'role' => 'READER'] //.
]

而且,当我尝试打开文件时,我得到

匿名调用者没有 storage.objects.get 访问谷歌云存储 object。

我做错了什么?

解决方案是在 createBucket 之后发送下一个请求

$policy = new PolicyBuilder();
$policy->setBindings([
    ['role' => 'roles/storage.objectViewer', 'members' => ['allUsers']]
]);

$bucket->iam()->setPolicy($policy);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM