Загрузка папки в Google Cloud - Python 2.7 - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь загрузить папку на своем локальном компьютере в Google Cloud Bucket. Я получаю сообщение об ошибке с учетными данными. Где я должен предоставлять учетные данные и какая вся информация необходима для этого.

from_dest = '/Users/xyzDocuments/tmp'
gsutil_link = 'gs://bucket-1991'

from google.cloud import storage
try:
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    blob = bucket.blob(destination_blob_name)
    blob.upload_from_filename(source_file_name)
    print('File {} uploaded to {}.'.format(source_file_name,destination_blob_name))

except Exception as e:
    print e

Ошибка

could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For more information, please see https://developers.google.com/accounts/do`cs/application-default-credentials.

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Это сообщение об ошибке обычно выдается, когда приложение не проходит аутентификацию правильно по нескольким причинам, таким как отсутствующие файлы, неверные пути к учетным данным, неправильные назначения переменных среды и другие причины. Помните, что когда вы устанавливаете значение переменной среды в сеансе, оно сбрасывается каждый раз, когда сеанс сбрасывается.

Исходя из этого, я рекомендую проверить правильность назначения файла и пути к учетным данным, а также следовать руководству Получение и предоставление учетных данных службы * вручную, чтобы явно указать свой файл учетной записи сервиса прямо в ваш код; Таким образом, вы сможете установить его навсегда и проверить, правильно ли вы передаете учетные данные службы.

Передача пути к ключу учетной записи службы в примере кода:

def explicit():
  from google.cloud import storage

  # Explicitly use service account credentials by specifying the private key
  # file.
  storage_client = storage.Client.from_service_account_json('service_account.json')

  # Make an authenticated API request
  buckets = list(storage_client.list_buckets())
  print(buckets)
0 голосов
/ 06 сентября 2018

Вам необходимо получить учетные данные приложения по умолчанию для вашего проекта и установить их в качестве переменной среды:

  1. Перейдите на ключевую страницу Создать учетную запись службы в консоли GCP.
  2. В раскрывающемся списке Сервисная учетная запись выберите Новая учетная запись .
  3. Введите имя в Сервисную учетную запись поле имени.
  4. В раскрывающемся списке Роль выберите Проект > Владелец .
  5. Нажмите Создать . Файл JSON, содержащий ваши ключи, загружается на ваш компьютер.

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

$ export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/[FILE_NAME].json"
...