Привет, Я использую GSUTIL, установленный через GCLOUD SDK, и gsutil как команда работает правильно, я могу создавать сегменты и загружать файлы в этот сегмент.Когда я пытаюсь использовать то же самое с помощью командного файла Windows (.bat), происходит сбой с ошибками ниже,
Caught non-retryable exception while listing gs://sushanth-07081985/: ServiceException: 401 Anonymous caller does not have storage.objects.list access to sushanth-07081985.
CommandException: Caught non-retryable exception - aborting rsync
Ниже приведен мой командный файл
set gsutil="C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\platform\bundledpython\python.exe" "C:\Program Files (x86)\Google\Cloud SDK\google-cloud-sdk\platform\gsutil\gsutil"
echo Backing up Test Folder
%gsutil% -m rsync -n -r -d -x ".*node_modules.*^|.*\.git.*" ./TestFolder gs://sushanth-07081985
После прочтения различных вариантовSO отправляет
Выполняет команду gcloud config list --all и видит pass_credentials_to_gsutil как неустановленный, поэтому установил его как false
gcloud config установил pass_credentials_to_gsutil false
Создан сервисный аккаунт и опробован
gcloud auth activit-service-account --key-file codes-20180829-2c7c4b3e24df.json
gsutil config -e (создала резервную копию файла .boto, так как он сказал, что собирается его изменить).Здесь указан полный путь к файлу JSON служебной учетной записи.
После этого я вообще не мог работать, поэтому попытался отменить все, что сделал, и все заработало как раньше
- заменил файл .boto, который я ранее зарезервировал.
- gcloud init (повторно инициализированная конфигурация)
- gcloud config set pass_credentials_to_gsutil true
Я использую Windows 10, в основном я хотел бы настроить gsutil для использования служебной учетной записи для загрузки файлов в облачное хранилище с помощью пакетного задания (.bat).Будет хорошо узнать любой пошаговый подход.
Спасибо
Обновлено: 25/12/2018 Правильный ли подход ниже?
- Создал S ervice A ccount в IAM с использованием значений по умолчанию и сгенерировал файл p12
- Запустил команду config -e gsutil, он запросил полный путьфайла p12 [D: \ BigData \ 16.GCP \ GCS \ Private \ codes-20180829-d05f0ecb939d.p12] и идентификатор электронной почты SA (полученный от самого IAM)
- Создан файл .boto сзначения, заполненные для файла gs_service_key_file [p12 filepath], gs_service_client_id [идентификатор электронной почты SA], gs_service_key_file_password [notasecret]
- Пошли в каждую группу и вручную добавили SA, установив роль как StorageAdmin
- .переменная BOTO_PATH установлена в C: \ Users \ Sushanth.boto
Теперь это работает, хотелось бы знать, корректен ли вышеуказанный подход?