Как запустить 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"
Другие вопросы по тегам