GCS删除桶ACL始终返回404

时间:2015-07-28 00:25:05

标签: google-cloud-storage

我似乎无法删除我插入的GCS存储桶ACL。 我做了一个POST来为我的服务帐户插入ACL:

https://www.googleapis.com/storage/v1/b/arqclient-1026650596885-sfd2omc18k3qs6lgphlch37jb5fucg0s/acl

使用此请求JSON:

{
  "entity" : "user-1026650596885-sfd2omc18k3qs6lgphlch37jb5fucg0s@developer.gserviceaccount.com",
  "role" : "WRITER"
}

当我列出ACL时,我插入的ACL如下所示:

{
            bucket = "arqclient-1026650596885-sfd2omc18k3qs6lgphlch37jb5fucg0s";
            entity = "user-00b4903a970addfce72044c71917166bd27bc8b9ab94a391dc841b526cd9466f";
            entityId = 00b4903a970addfce72044c71917166bd27bc8b9ab94a391dc841b526cd9466f;
            etag = "CA0=";
            id = "arqclient-1026650596885-sfd2omc18k3qs6lgphlch37jb5fucg0s/user-00b4903a970addfce72044c71917166bd27bc8b9ab94a391dc841b526cd9466f";
            kind = "storage#bucketAccessControl";
            role = WRITER;
            selfLink = "https://www.googleapis.com/storage/v1/b/arqclient-1026650596885-sfd2omc18k3qs6lgphlch37jb5fucg0s/acl/user-00b4903a970addfce72044c71917166bd27bc8b9ab94a391dc841b526cd9466f";
        }

显然我的用户 - < emailaddress>"转换为其他类型的ID。

当我尝试删除ACL时:

DELETE https://www.googleapis.com/storage/v1/b/arqclient-1026650596885-sfd2omc18k3qs6lgphlch37jb5fucg0sfkjhfkjhf/acl/user-1026650596885-sfd2omc18k3qs6lgphlch37jb5fucg0s%40developer.gserviceaccount.com

我总是收到404错误。 我的DELETE命令有什么问题?该文档说我可以使用user-emailAddress,但这不起作用。 如果我使用列表中的实体ID," user-00b4903a970addfce72044c71917166bd27bc8b9ab94a391dc841b526cd9466f",它可以通过Google API Explorer工作。

如果我应该使用实体ID,如何获得给定服务帐户电子邮件地址的实体ID?

1 个答案:

答案 0 :(得分:0)

Google API文档的访问控制页面显示"您可以通过检索用户上传的对象的ACL来查找用户的Google存储ID。" https://cloud.google.com/storage/docs/access-control?hl=en#google-storage-ids

所以我想最好的答案是使用我的服务帐户创建一个对象,检索其ACL,并在ACL中找到实体ID。