【问题标题】:Permissions Denied on getSignedUrl Promise in Cloud Function云函数中的 getSignedUrl Promise 权限被拒绝
【发布时间】:2020-11-02 21:43:27
【问题描述】:

我有一个 http onCall 云函数,我想返回一个 signedURL 以允许我将文件上传到云存储桶 Previous question

它一直告诉我权限被拒绝,但我看不出问题出在哪里。功能 GCPSecureURL 设置为 Allow unauthenticated,StorageAdmin 设置为所有用户。

服务帐户还可以访问存储桶上的 StorageAdmin,因为当文件上传到存储桶并触发 pdf 转换服务时,发布/订阅订阅事件。

为什么我不能从函数中取回已签名的URL?

现在,promise 处于待处理状态,然后控制台会记录一个 POST 500 错误。该函数的日志显示 Unhandled error { Error: The caller does not have permission" ...

【问题讨论】:

  • 这个thread 看起来非常相似,尽管它涉及 Cloud Run。 Tty 将“服务帐户令牌创建者”角色添加到您的服务帐户。
  • 我很困惑 - 看起来你根本无法使用 signedURL 上传新文件,因为它不接受 POST - 但我一直在尝试专门调整的示例是上传?自从实施了签名网址后,这种情况是否发生了变化?
  • 我认为没有任何变化,您应该仍然可以上传文件。您能否详细说明如何执行上传以及遇到的错误。还要检查this
  • 好的,我将 Service Account Token Creator 角色添加到了正确的服务帐户,现在它可以工作了 - 非常感谢!

标签: google-cloud-platform google-cloud-functions google-cloud-storage


【解决方案1】:

我在调用file.getSignedUrl() 时也收到了Service Account Token Creator 错误。

我通过访问我的 Firebase 项目的 IAM Permissions 页面并编辑 App Engine default service account 以拥有 Service Account Token Creator 角色来修复它。

【讨论】:

    猜你喜欢
    • 2019-04-27
    • 2016-12-21
    • 2023-03-22
    • 2013-04-21
    • 1970-01-01
    • 2018-06-11
    • 2014-10-04
    • 1970-01-01
    • 2021-03-18
    相关资源
    最近更新 更多