Как дать разрешение Google Storage Bucket на текстовый API Google Speech? - PullRequest
0 голосов
/ 08 июля 2019

Я создал корзину Google Storage для преобразования Google Speech-to-text в аудиофайл из корзины. Но это не работает, поскольку ведро запрещает доступ к Google Speech API.

Сообщение об ошибке: Анонимный абонент не имеет доступа к storage.objects.get PERMISSION_DENIED

Речь использует ключ API для аутентификации, а хранилище использует ключ учетной записи службы для аутентификации. Я уже дал доступ к учетной записи службы в разрешении корзины.

Можно ли предоставить Speech доступ к хранилищу?

Я также попытался дать разрешение на ведение учетной записи службы. Но это не работает.

1 Ответ

0 голосов
/ 09 июля 2019

Вы вообще не используете аутентификацию;в сообщении об ошибке это указывает «Анонимный абонент».

Похоже, вы напрямую обращаетесь к API, либо с помощью curl, либо с помощью другого инструмента.

Для аутентификации таким способом,Вы можете следовать этим инструкциям .Посмотрите на примеры 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» к команде, чтобы сохранить запрошенный файл.

...