如何授予 Google 存储桶 Google 语音转文本 API 的权限?

How to give Google storage bucket permission to Google Speech to text API?

我已经创建了 Google 存储桶来为存储桶中的音频文件执行 Google 语音到文本。但这不起作用,因为存储桶拒绝访问 Google 演讲 API.

错误信息: 匿名来电者没有 storage.objects.get 访问权限 PERMISSION_DENIED

语音使用 API 密钥进行身份验证,存储使用服务帐户密钥进行身份验证。我已经在存储桶权限中授予访问服务帐户的权限。

是否可以授予 Speech 对存储桶的访问权限?

我也试过将存储桶权限授予服务帐户。但是没用。

您根本没有使用身份验证; 这在错误消息中由 "Anonymous caller" 显示。

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

为了通过这种方式进行身份验证,您可以关注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”即可保存请求的文件。