google-cloud-platform - 节点没有 storage.objects.create
问题描述
将图像上传到谷歌云存储的权限错误,但我已经在 IAM 上授予了适当的权限
Error: reportai-images@even-shuttle-250512.iam.gserviceaccount.com does not have storage.objects.create access to reportai-images/images.jpeg.
at Gaxios.request (/home/jvcabral/Projects/reportai_image_upload/node_modules/gaxios/build/src/gaxios.js:70:23)
at process._tickCallback (internal/process/next_tick.js:68:7)
解决方案
IAM 成员账户没有storage.objects.create
您项目的权限。
要列出分配给项目的 IAM 成员角色,请执行此命令。将 PROJECT_ID 替换为您的项目 ID,它看起来是even-shuttle-250512
.
gcloud projects get-iam-policy PROJECT_ID > project_roles.txt
查看project_roles.txt
成员的文件并确认为服务帐户分配了哪些角色:
reportai-images@even-shuttle-250512.iam.gserviceaccount.com
要将角色添加到授予服务帐户所需权限的项目:
窗口语法:
gcloud projects add-iam-policy-binding PROJECT_ID ^
--member=serviceAccount:reportai-images@even-shuttle-250512.iam.gserviceaccount.com ^
--role=roles/storage.admin
Linux/macOS 语法:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:reportai-images@even-shuttle-250512.iam.gserviceaccount.com \
--role=roles/storage.admin
请注意,在前面的命令中,我分配了角色 Storage Admin。选择一个满足您的最低权限要求的角色。例如roles/storage.legacyBucketWriter
可能更合适。
推荐阅读
- data-visualization - 使用 Vegalite 的多直方图
- ios - SwiftUI ScrollView BlendMode 问题
- java - 匹配方法时忽略Accept-Encoding?
- r - 有没有办法在学习者教程中使用通用 css?
- terraform - 无法在 terraform 中为 ECS 容器配置 AWS CloudWatch 日志
- python - 使用 DataFrame 将多个文件合并为一个文件
- c++ - 部分特化和嵌套模板
- rust - 如何从 &alloc::string::String 转换为字符串文字?
- python - 如何让 django 模型将其文件上传到以模型实例命名的文件夹中?
- javascript - 我可以在我的反应项目中使用 nodeJS 库吗