Назад | Перейти на главную страницу

Как запустить 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 и хотим заранее найти способ выполнить синхронизацию без авторизации. Является ли это возможным?

Перед использованием инструмента gsutil вам необходимо пройти аутентификацию следующим образом: https://cloud.google.com/storage/docs/quickstart-gsutil#before-you-begin что является одним из требований. Даже если у вас есть общедоступная корзина и / или объект, вы, к сожалению, не можете выполнить синхронизацию без предварительной аутентификации.

@ 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"