为语音API设置gs桶对象的权限

时间:2018-06-28 08:14:02

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

我想将一个长音频文件转录为文本。

所以我创建了一个存储桶,并使用

将其设置为私有

gsutil acl set private gs://bucket

然后我将特定帐户的上传权限设置为

gsutil acl ch -u myaccount@provider.com:WRITE gs://bucket

然后将服务帐户的读取权限设置为存储桶

gsutil acl ch -u projectname@projectname-a.iam.gserviceaccount.com:R gs://bucket/

然后我使用python程序发送了一个请求,但是它返回403,但是如果我将该对象设置为public,那么它会返回200,但是我不想将文件的许可设置为public

还有什么我可以做的吗?

是否必须强制使音频文件可公开访问以生成文本?

我按照此步骤设置了服务帐户权限:https://stackoverflow.com/a/45638730/4320263

1 个答案:

答案 0 :(得分:1)

通过ACL doesn't allow the content within to be downloaded授予用户对存储桶的读取权限,而不仅仅是列出内容。 您可以在对象本身上设置ACL读取权限:

gsutil acl ch -u projectname@projectname-a.iam.gserviceaccount.com:R gs://bucket/file.xxx

或者您可以授予Storage Object Viewer IAM policy on the bucket来访问整个存储桶中的内容。