我正在寻找一种方法来确定将文件上传到云端存储分区的人员。所有有权写入存储桶的用户都是同一G Suite域中的经过身份验证的用户。
Cloud Storage中的对象ACL显示所有者标识符字符串,如下所示:
{
"entity": "user-84fac329bceSAMPLE777d5d22b8SAMPLE77d85ac2SAMPLE2dfcf7c4adf34da46",
"entityId": "84fac329bceSAMPLE777d5d22b8SAMPLE77d85ac2SAMPLE2dfcf7c4adf34da46",
"role": "OWNER"
}
但是,似乎没有一种简单的方法可以将此ID映射回用户的电子邮件地址(或确定我知道其电子邮件的用户的云存储ID,除非使用该用户帐户上传文件并查询对象ACL)。
这是真的吗?或者我只是没有看到这样做的方法?
感谢您的帮助!
答案 0 :(得分:1)
虽然我无法为您提供具体的时间表,但我们仍然积极致力于弃用规范ID。这在不久的将来不再是一个问题。
同时,还有..选项。
首先:用户可以在此页面上找到他们的规范ID(不幸的是,它会让您选择一个项目,因为该页面还会显示项目角色的规范ID)。 https://console.cloud.google.com/storage/settings
但是,如果你真的需要找一个随机规范id的电子邮件地址,你应该可以做一些有点丑陋的解决方法。
1)通过ACL API将用户添加到存储桶策略
gsutil acl ch -u <canonical_id>:READ gs://<bucket>
2)获取存储桶IAM策略
gsutil iam get gs://<bucket>
该条目应显示为电子邮件地址。
{
"bindings": [
{
"members": [
"projectOwner:<project-id>",
"projectEditor:<project-id>",
],
"role": "roles/storage.legacyBucketOwner"
},
{
"members": [
"projectViewer:<project-id>",
"user:<user email here>"
],
"role": "roles/storage.legacyBucketReader"
}
],
"etag": "CAI="
}
答案 1 :(得分:1)
再次尝试获取ACL。我今天刚试过07/05/2017,并且返回的ACL包含了电子邮件地址。 Google会更新API,将旧的Google云端存储ID替换为用户的电子邮件地址。
{
"email": "email@domain.com",
"entity": "user-email@domain.com",
"role": "OWNER"
}