Как запустить gsutil rsync без аутентификации?
aws s3 sync
предоставляет параметр с именем --no-sign-request
Таким образом, пользователь может синхронизировать общедоступную корзину без предварительной авторизации.
gsutil help anon
Говорит, что:
Пользователи gsutil могут получить доступ к общедоступным данным без получения учетных данных. Например, корзина gs://uspto-pair содержит несколько общедоступных объектов, поэтому любой пользователь может выполнить следующую команду без предварительного получения учетных данных:
gsutil ls gs://uspto-pair / Applications/0800401*
Пользователи также могут загружать найденные объекты с помощью приведенной выше команды gsutil ls.
Однако выполнение этой команды без входа в систему приводит к ошибкам отчета gsutil:
➜ mirror-docker git:(v2) gsutil ls 'gs://uspto-pair/applications/0800401*'
Your credentials are invalid. Please run
$ gcloud auth login
В настоящее время мы настраиваем зеркало для обычных сегментов в gcloudstorage и хотим заранее найти способ выполнить синхронизацию без аутентификации. Является ли это возможным?
3 ответа
Перед использованием инструмента gsutil вам необходимо пройти аутентификацию в соответствии со следующим: https://cloud.google.com/storage/docs/quickstart-gsutil, что является одним из требований. Даже если у вас есть общедоступная корзина и / или объект, вы, к сожалению, не сможете выполнить синхронизацию без предварительной аутентификации.
@lz96, я рад слышать, что вы смогли решить вашу проблему с помощью вышеуказанного скрипта на вновь созданной учетной записи без метода оплаты и в новой паре проект / ключ.
Ответ @Steeve о том, что аутентификация требуется, верен. Ниже приведен простой скрипт для синхронизации общедоступного сегмента с локальным. Просто создайте новую учетную запись без метода оплаты и новую пару проект / ключ:
#!/bin/bash
# path: sync destination
# access_key_id: https://cloud.google.com/storage/docs/migrating#keys
# access_secret_id: Same as above
# project_id: The project name where you create a new key
# source: source googlestorage path. Example: gs://flutter_intra
mkdir -p "$LUG_path"
env "GS_ACCESS_KEY_ID=$LUG_access_key_id" "GS_ACCESS_SECRET_KEY=$LUG_access_secret_key" ./google-cloud-sdk/bin/gsutil -o "GSUtil:default_project_id=$LUG_project_id" -m rsync -d -r "$LUG_source" "$LUG_path"