Skh*_*haz 4 javascript google-cloud-storage firebase
我有一个使用 Firebase Admin 上的默认存储桶的项目。
我有以下几行:
const [url] = await blob.getSignedUrl({ action: 'read', expires: Date.now() + 60 * 1000, contentType: mimetype })
Run Code Online (Sandbox Code Playgroud)
当调用我的 HTTPS 可调用函数时,上面的行会抛出以下错误:
Unhandled error Error: The caller does not have permission
at Gaxios._request (/workspace/node_modules/gaxios/build/src/gaxios.js:129:23)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async Compute.requestAsync (/workspace/node_modules/google-auth-library/build/src/auth/oauth2client.js:368:18)
at async GoogleAuth.signBlob (/workspace/node_modules/google-auth-library/build/src/auth/googleauth.js:655:21)
at async sign (/workspace/node_modules/@google-cloud/storage/build/src/signer.js:97:35) {
name: 'SigningError'
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
已经有一个开放的GitHub 问题此问题的开放问题。如果这正是您正在寻找的,您可以查看 GitHub 问题上列出的解决方案:
\n转到您的项目Cloud Console > IAM & admin > IAM,找到App Engine default service account并添加Service Account Token Creator到该成员。这将允许您的应用程序创建图像的签名公共 URL。
如果它不适合您,请尝试更新 IAM 角色。从\nfirebaseSA.json 文件中查看关联的电子邮件是否具有以下角色:
\nFirebase Admin SDK Administrator ,Service Agent, Service Account\nToken Creator ,Pub/Sub Publisher, Storage Admin\nRun Code Online (Sandbox Code Playgroud)\n如果它仍然\xe2\x80\x99 不起作用,请尝试使用具有所有可能的云存储权限的\n其他服务帐户运行应用程序,它是否有效?如果是,则意味着您当前的\n服务需要额外的权限才能执行该功能。您\n可以检查在Cloud Storage IAM 角色中授予哪些权限
\n| 归档时间: |
|
| 查看次数: |
1690 次 |
| 最近记录: |