如何授予Google存储桶对Google Speech to Text API的许可?

时间:2019-07-08 15:49:27

标签: google-cloud-storage google-speech-api

我创建了Google Storage存储桶,以对存储桶中的音频文件执行Google Speech-to-text。但这不起作用,因为存储桶拒绝访问Google Speech API。

错误消息: 匿名呼叫者没有storage.objects.get访问权限PERMISSION_DENIED

Speech使用API​​密钥进行身份验证,而Storage使用服务帐户密钥进行身份验证。我已经授予了存储桶中服务帐户的访问权限。

是否可以将语音访问权限授予存储桶?

我还尝试将存储桶权限授予服务帐户。但这不起作用。

1 个答案:

答案 0 :(得分:0)

您根本不使用身份验证; 错误消息中的“匿名呼叫者”将显示该消息。

似乎您正在使用curl或其他工具直接访问API。

为了以这种方式进行身份验证,您可以遵循these instructions。 查看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”即可保存请求的文件。