Google cloud storage 要完成此传输,您需要';storage.bucket.setIamPolicy';源存储桶的权限

Google cloud storage 要完成此传输,您需要';storage.bucket.setIamPolicy';源存储桶的权限,google-cloud-storage,google-iam,Google Cloud Storage,Google Iam,我在尝试创建“传输”以将Google云中一个bucket的内容传输到同一所有者下的Google云中的另一个bucket时遇到此错误: 要完成此传输,您需要源存储桶的“storage.bucket.setIamPolicy”权限。请让bucket的管理员授予您所需的权限,然后重试 我不知道我该做什么。我尝试去“Bucket->Permissions->addmembers->myemail.com for Storage->…Admin”,但我一直得到“IAM策略更新失败” 请帮助我做些什么来让这

我在尝试创建“传输”以将Google云中一个bucket的内容传输到同一所有者下的Google云中的另一个bucket时遇到此错误:

要完成此传输,您需要源存储桶的“storage.bucket.setIamPolicy”权限。请让bucket的管理员授予您所需的权限,然后重试

我不知道我该做什么。我尝试去“Bucket->Permissions->addmembers->myemail.com for Storage->…Admin”,但我一直得到“IAM策略更新失败”

请帮助我做些什么来让这个工作,这样我就可以使我的文件公开访问

如果有帮助的话,我正在使用Node.js

如果我甚至试图获取照片并直接绕过它,我甚至无法做到:/

const { Storage } = require('@google-cloud/storage')

const storage = new Storage({
  projectId: 'my-bucket'
})

const bucket = storage.bucket('my.bucket')


app.get('/photo/:photo.:ext', (req, res) => {
  const remoteFile = bucket.file(`photo/${req.params.photo}.${req.params.ext}`)
  remoteFile.createReadStream().pipe(res)
})
也不能这样做:

const opts = {
  includeFiles: true
};

bucket.makePublic(opts, function(err, files) {
  // `err`:
  //    The first error to occur, otherwise null.
  //
  // `files`:
  //    Array of files successfully made public in the bucket.
  console.log(arguments)
});
无法获取仅启用了bucket策略的bucket的旧ACL。阅读更多信息


该错误清楚地表明源bucket上缺少权限。我建议您确认源存储桶上的所有者具有权限storage.objects.getIamPolicy(IAM&admin-->IAM菜单-->按所有者的电子邮件地址筛选-->检查其角色)。然后,您可以检查角色是否具有该权限storage.objects.getIamPolicy(转到IAM&admin-->角色,然后搜索特定角色-->单击它,它将显示分配的权限列表。请确保storage.objects.getIamPolicy是为该角色列出的权限之一


同时,为了能够授予对特定存储桶的访问权限,您的帐户角色必须是。因此,如果您的帐户没有该角色,您将需要具有该角色的人能够授予对该存储桶的访问权限或拥有对该存储桶的其他控制权

我希望您自己已经找到了解决方案。 但对于任何收到相同错误消息的人,我在尝试从云控制台设置传输时收到了此消息。我以前在这两个存储桶之间进行过传输,并且没有更改传输的名称,因此第二次尝试此操作时,建议的名称与前一次相同。我将传输名称更改为唯一名称,然后最后,他为我解决了这个问题


不知道为什么我一直收到此错误消息,因为权限不是问题的一部分。

此错误清楚地表明源bucket上缺少权限。我建议您确认源bucket上的所有者具有权限storage.objects.getIamPolicy(IAM&admin-->IAM菜单-->按所有者的电子邮件地址筛选-->检查其中的角色)。然后,您可以检查角色是否具有该权限storage.objects.getIamPolicy(转到IAM&admin-->角色,然后搜索特定角色-->单击它,它将显示分配的权限列表。请确保storage.objects.getIamPolicy是为该角色列出的权限之一。同时,为了能够授予对特定存储桶的访问权,您的帐户角色必须是。因此,如果您的帐户没有在角色中,您需要具有该角色的人能够授予访问权限或对bucket进行其他控制
$ gsutil iam ch allUsers:objectViewer gs://my.bucket
ServiceException: 401 Anonymous caller does not have storage.buckets.getIamPolicy access to my.bucket.