Ответ связан с Cloud Identity and Access Management .Сначала перейдите на страницу облачной платформы Google IAM & admin .Вы увидите различные учетные записи .Найдите служебную учетную запись, которая выглядит как myapp-cd99d@appspot.gserviceaccount.com
.В колонке Name
должно быть написано App Engine default service account
.(Если сообщение об ошибке ссылается на другую учетную запись службы, найдите эту учетную запись службы.)
В столбце Role
могут отображаться или не отображаться некоторые роли.Если вы получаете сообщение SigningError
, в столбце Role
отсутствует роль Создатель токена учетной записи службы .Установите флажок слева от myapp-cd99d@appspot.gserviceaccount.com
, чтобы выбрать учетную запись службы, а затем щелкните карандашом справа, чтобы отредактировать ее.На следующем экране нажмите +ADD ANOTHER ROLE
.Прокрутите вниз до Service Accounts
, выберите Service Account Token Creator
и сохраните.Теперь вы должны увидеть Service Account Token Creator
в столбце Roles
для App Engine default service account
.Теперь у вас есть разрешение на создание подписанных токенов.
Далее повторите эти шаги и добавьте роль для Storage Object Creator
.Это позволит вам запускать getSignedURL()
.
. Вы можете сохранить альтернативно назначить администратора учетной записи службы и администратора хранилища, которые включают роли Service Account Token Creator
и Storage Object Creator
соответственно, а также другие роли.
Теперь, если вы вместо этого получили сообщение SingingError
, это может быть из-за того, что вы расстраиваете "Дни славы" Брюса Спрингстина.: -)