gsutil возвращает неавторизованный клиент

Я был в процессе синхронизации папки со 130 000 файлов в Google Cloud Storage. После загрузки нескольких тысяч изображений я начал получать следующее сообщение для каждого файла, который gsutil пытался скопировать:

Your "Oauth 2.0 User Account" credentials are invalid. For more help, see "gsutil help creds", or re-run the gsutil config command (see "gsutil help config").
Failure: unauthorized_client.

Я испробовал все трюки, которые только мог придумать. gcloud auth login работает как обычно, но не решает проблему. gcloud auth list показывает правильный аккаунт. gsutil config предупреждает, что больше не надо - я все равно его запустил, и он заработал как положено, но проблему это не решило. Удаление файла .boto и повторный запуск gsutil config тоже не помогло.

В этот момент я подумал, что, может быть, я уперся в какую-то квоту. Я не смог найти никаких упоминаний в документации или в Cloud Console о каких-либо квотах на загрузку файлов. Чтобы проверить эту теорию, я попытался синхронизировать те же файлы с другого компьютера. И это сработало, предполагая, что нет квоты на ведро или приложение. Однако после нескольких тысяч файлов второй компьютер начал показывать те же сообщения об ошибках.

Еще одно важное замечание. Сначала я пытался копировать файлы с помощью Cloud Console, но это шло слишком медленно. Тем не менее, консоль смогла загрузить более 25 000 файлов — значительно больше, чем инструмент gsutil. Я сам прервал эту загрузку (25 тысяч очень маленьких файлов за 24 часа — это слишком медленно...)

Кто-нибудь знает, что это происходит? И как мне теперь восстановить учетные данные?


person Andrei Volgin    schedule 02.06.2014    source источник
comment
Мы столкнулись с той же проблемой. Насколько я понимаю, это, вероятно, связано с новой версией boto: boto.readthedocs.org/en/latest/releasenotes/v2.6.0.html При просмотре кода я обнаружил следующую проблему. Надеюсь, это что-то решит: github.com/boto/boto/pull/2302   -  person Sjuul Janssen    schedule 02.06.2014
comment
Привет, какую версию gsutil ты используешь? Это происходит с текущей версией (4.1)? Кроме того, вы используете версию gsutil для gcloud или автономную версию? Я спрашиваю, потому что конфигурация gsutil используется только для автономной версии.   -  person Mike Schwartz    schedule 02.06.2014
comment
У меня 4.1. Однако я запустил обновление gsutil, чтобы получить эту версию, потому что обновление компонентов gcloud не обновлялось до gsutil до 4.1.   -  person Andrei Volgin    schedule 02.06.2014
comment
Есть ли у вас файл preference_api=xml в разделе GSUtil вашего конфигурационного файла boto? Мы считаем, что это ошибка (которую мы исправим) в коде GCS в boto, но она должна повлиять на вас только в том случае, если вы используете версию boto, содержащую эту ошибку — что не должно быть правдой, если вы либо используя gsutil v4 без Prefer_api=xml, или если вы используете один из дистрибутивов gsutil, который включает копию boto, не содержащую эту ошибку.   -  person Mike Schwartz    schedule 02.06.2014
comment
preference_api = xml закомментирован в .boto.   -  person Andrei Volgin    schedule 02.06.2014
comment
Используете ли вы дистрибутив gsutil, который не включает в себя пакет boto (например, установленный из PyPi, а не из файла gsutil tar.gz)? Если это так, вам необходимо обновить boto до версии 2.29.1, в которой есть решение этой проблемы.   -  person Mike Schwartz    schedule 02.06.2014
comment
Установка бото 2.29.1 не помогла. Должен ли я как-то обновить gcloud или gsutil после установки нового бото?   -  person Andrei Volgin    schedule 02.06.2014


Ответы (4)


эта проблема теперь должна быть исправлена, если ваш запуск:

обновление gsutil

(что приведет вас к gsutil v4.2)

Спасибо тебе за твое терпение.

person Mike Schwartz    schedule 05.06.2014
comment
такая же проблема в gsutil v4.5 - person Aram; 25.08.2014
comment
Я вижу это, используя автономный gsutil v4.6 (последний на момент написания этой статьи). Выполнение такой операции, как «gsutil -m acl ch -R ...», приводит к тому, что учетные данные учетной записи пользователя Oauth 2.0 недействительны для некоторых рабочих потоков. - person OpenUserX03; 31.10.2014

Решение состоит в том, чтобы установить boto версии 2.29.1 (спасибо, Майк Шварц), а затем обновить gcloud.

Установите boto через pip:

$ pip install boto

Или установите boto из исходников:

$ git clone git://github.com/boto/boto.git
$ cd boto
$ python setup.py install

Переустановите gcloud:

curl https://sdk.cloud.google.com | bash
~./google-cloud-sdk/install.sh

К счастью, gcloud выполняет обновление на месте, поэтому это относительно быстро. Окончательно,

gcloud auth login
person Andrei Volgin    schedule 02.06.2014
comment
Мы создаем новый выпуск gsutil, который включает обновленный boto с этим исправлением. Я отвечу на этот вопрос StackOverlow, как только он будет готов. - person Mike Schwartz; 04.06.2014

Если это кому-то поможет, у меня была такая же проблема, но точное решение Андрея мне не помогло. Что сработало, так это переустановка boto через pip (pip install boto), а затем обновление компонентов gcloud (sudo gcloud components update).

(Тогда запуск gcloud auth login был не нужен).

person daniel.s    schedule 04.06.2014

У меня была такая же ошибка, и я решил ее, запустив gsutil config. Это создает новый .boto с новыми учетными данными.

person MagTun    schedule 06.11.2016