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
.这样,您的服务帐户就可以访问整个存储桶,而您无需为每个单独的文件授予访问权限。
我正在尝试通过对 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
.这样,您的服务帐户就可以访问整个存储桶,而您无需为每个单独的文件授予访问权限。