получил «Сбой: GetBucketIamPolicy должен быть перегружен», когда gsutil iam get gs: // test-bucket / cmd - PullRequest
1 голос
/ 09 июля 2019

Google Cloud gsutil iam get gs: // команда testBucket должна возвращать политику корзины, но вместо этого получена «Ошибка: GetBucketIamPolicy должна быть перегружена»

Проверено storage.buckets.GetIamPolicy и storage.buckets.setIamPolicy находятся вразмещены.

Любая помощь или предложение приветствуется.

Ответы [ 3 ]

2 голосов
/ 10 июля 2019

Эта функциональность существует только в JSON API; похоже, вам как-то удалось заставить gsutil попытаться использовать XML API для выполнения этого вызова.

Вот базовый клиентский класс API:

А вот подклассы, которые реализуют функциональность для JSON и XML API (обратите внимание, что GetBucketIamPolicy реализован только в клиентском классе JSON API):

По-моему, в вашем файле boto настроены учетные данные HMAC, а не учетные данные OAuth2. Это заставит gsutil использовать XML API (поскольку учетные данные HMAC работают только для этого API), независимо от того, должна ли команда поддерживать API XML. Команда iam должна поддерживать только JSON API , но похоже, что мы не добавили тест для крайнего случая, когда были настроены только учетные данные HMAC.

Я подал https://github.com/GoogleCloudPlatform/gsutil/issues/846, чтобы отследить эту ошибку в gsutil.

1 голос
/ 09 июля 2019

«Сбой: GetBucketIamPolicy должен быть перегружен»

Эта ошибка означает, что функция GetBucketIamPolicy не реализована в программе gsutil.

Это означает, что Google Cloud SDK установлен неправильно, Python настроен неправильно или у вас есть внешние библиотеки с конфликтами имен с библиотеками Google.

Примечание: я еще не подтвердил это: вчера была упомянута внутренняя проблема, связанная с gsutil. Если вы используете последнюю версию, попробуйте вернуться к выпуску, выпущенному две недели назад.

Предыдущие версии

Предыдущие версии Cloud SDK доступны в загружаемом архиве в Google Cloud Storage.

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

@ mhouglum, @John Hanley Мне удалось воспроизвести проблему на другом компьютере, и решение состоит в том, чтобы выполнить команду "gcloud config set pass_credentials_to_gsutil true"

Как сказал @mhouglum, gsutil будет пытаться сначала прочитать учетные данные OAuth из «имени входа gcloud», но поскольку для pass_credentials_to_gsutil задано значение false, он будет считывать учетные данные HMAC из файла .boto, который не поддерживает XML API.

Спасибо вам за ваше время и усилия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...