Transcoder因存储权限问题无法创建输出目录问题求助
问题根因
Google Cloud Transcoder API使用专属服务账号访问Cloud Storage资源,你当前的服务账号仅拥有输入存储桶的读取权限,未授予输出存储桶的写入权限,因此无法生成输出目录和转码产物。
排查与解决步骤
- 第一步:获取你的Transcoder专属服务账号,格式为:
service-[你的项目编号]@gcp-sa-transcoder.iam.gserviceaccount.com
其中项目编号对应你作业配置中projects/后的PROJECT-NUMBER字段值。 - 第二步:给该服务账号授予输出存储桶的对象创建权限,可直接运行以下gcloud命令:
如果你在控制台操作,可以进入输出存储桶的「权限」页,点击「授予访问权限」,粘贴上述服务账号,选择「存储对象创建者」角色后保存即可。gcloud storage buckets add-iam-policy-binding gs://output-bucket \ --member=serviceAccount:service-[替换为你的项目编号]@gcp-sa-transcoder.iam.gserviceaccount.com \ --role=roles/storage.objectCreator - 第三步:确认配置无误后重新提交转码作业即可正常生成输出。
可选排查项(若上述操作后仍报错)
- 确认输出存储桶名称与你作业配置中
output.uri字段的桶名完全一致,不存在拼写错误 - 若你的输出存储桶启用了客户管理加密密钥(CMEK),需要额外给Transcoder服务账号授予该密钥的
roles/cloudkms.cryptoKeyEncrypterDecrypter权限 - 若输出存储桶设置了访问限制条件(如VPC服务边界、IP白名单),需要放行Transcoder服务的访问请求
内容的提问来源于stack exchange,提问作者TJ Liu
相关产品推荐
相关产品推荐

