google-cloud-storage - 如何将 Google 存储桶权限授予 Google Speech to text API?
问题描述
我创建了 Google Storage 存储桶来为存储桶中的音频文件执行 Google Speech-to-text。但这不起作用,因为存储桶拒绝访问 Google Speech API。
错误消息:匿名调用者没有 storage.objects.get 访问权限 PERMISSION_DENIED
语音使用 API 密钥进行身份验证,存储使用服务帐户密钥进行身份验证。我已经在存储桶权限中授予了对服务帐户的访问权限。
是否可以授予语音访问存储桶的权限?
我还尝试将存储桶权限授予服务帐户。但它不起作用。
解决方案
您根本没有使用身份验证;这在错误消息中由“匿名调用者”显示。
curl
您似乎正在使用或其他工具直接访问 API 。
为了以这种方式进行身份验证,您可以按照这些说明进行操作。查看curl
示例,但这样做(gcloud auth print-access-token
用作从 CLI 生成访问令牌的简单方法),用您的存储桶名称替换“$BUCKET_NAME”,用您的对象名称替换“$OBJECT_NAME”(使用环境变量或字面意思) :
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -i "https://www.googleapis.com/download/storage/v1/b/$BUCKET_NAME/o/$OBJECT_NAME?alt=media"
但是要小心,因为这会将文件下载到您的终端并可能会弄乱它的显示。为避免这种情况,只需将“> $OBJECT_NAME”附加到命令以保存请求的文件。
推荐阅读
- bixby - bixby:音频在选择页面上播放消息两次(模拟器)
- c++ - C++:指针元素向量是否会在销毁时自动释放每个指针指向的动态内存?
- java - 部署后的语言更改 - Android
- python - 如何将 python 库安装到拉取的 docker 映像中?
- c - 正则表达式在 C 语言中失败,在线测试通过
- python - 如何在不改变其结构的情况下更改 HTML 的文本
- azure - 无法使用 OpenIDConnect 从 HttpContext 获取 AAD 的访问令牌
- python - 如何用可调用类装饰类方法?
- python - 文本框不会自动删除自己
- python - 找到最小的解决方案集,如果存在(两个乘数)