Google 云语音异步请求带私有音频文件

Google cloud speech asyncronous request with private audio file

我正在尝试通过对 google 云语音执行异步请求来转录托管在 google 云存储桶中的音频文件。该文件不是 public。作为身份验证方法,我使用服务帐户。 Google 云语音 return 权限被拒绝错误。相反,对于 public 个文件,它可以工作。

我能做什么? 谢谢

服务帐户需要读取文件的权限。试试这个:

$ gsutil acl ch -u nameOf@serviceaccount.com:R gs://bucket/object

可以使用不同的选项管理对云存储的访问控制,详见this documentation page

使用已接受答案中建议的方法,您改为通过 Access Control List (ACL). In general, it is recommended to use Identity and Access Management (IAM) 提供访问权限,但是当您需要 fine-detailed 控制单个对象时,使用 ACL 是您想要遵循的方法.使用命令 gsutil acl ch -u nameOf@serviceaccount.com:R gs://bucket/object,您提供了对存储桶中特定对象的访问权限,在本例中为托管在云存储中的音频文件。

但是,如果您的想法是将语音 API 与存储在云存储中的更多文件一起使用,您应该考虑使用 IAM role of the list 向您的服务帐户授予权限,例如 roles/storage.objectViewer .这样,您的服务帐户就可以访问整个存储桶,而您无需为每个单独的文件授予访问权限。