Я не могу загрузить файл в облако Google с помощью скрипта Python? - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь использовать скрипт Python, доступный по ссылке GCP, для загрузки файла в облачное хранилище Google, но каждый раз, когда я запускаю его, я получаю сообщение об ошибке файла, не найденного для файла учетных данных ключа json, даже если он находится в том же каталоге, что и скрипт на питоне.

Ошибка:

Файл "c: \ users \ kundan \ appdata \ local \ Programs \ python \ python37-
32 \ Lib \ сайт- пакеты \ google \ cloud \ client.py ", строка 75, из from_service_account_json с io.open (json_credentials_path, "r", encoding = "utf-8") как json_fi: FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'key.json'

Код выглядит следующим образом:

from google.cloud import storage

def upload_blob(bucket_name, source_file_name, destination_blob_name):

    storage_client = storage.Client.from_service_account_json(
    'key.json')
    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))

bucket='synersense_data'
source_file_name='gcp.txt'
destination_blob_name='prototype'

upload_blob(bucket,source_file_name,destination_blob_name)

1 Ответ

0 голосов
/ 22 июня 2019

Это код, который я использовал для загрузки файла abc.txt в хранилище Google.

from google.cloud import storage

client = storage.Client.from_service_account_json('key.json')

def upload_blob(bucket_name, blob_name, filename):
    """ 
       Upload a blob to the bucket. 
       filename: source file name
       blob_name: destination blob name
    """
    bucket = client.get_bucket(bucket_name)
    blob = bucket.blob(blob_name)
    blob.upload_from_filename(filename)

print(upload_blob("XXXXXXXXXXXXXXX", "temp/abc.txt", "abc.txt"))

И ниже вывод:

enter image description here

Первоначально я также получал ту же ошибку, что и вы:

Traceback (последний вызов был последним): файл "gcp_upload.py", строка 9, в клиенте =storage.Client.from_service_account_json ('key.json') Файл "E: \ Anaconda3 \ envs \ py35 \ lib \ site-packages \ google \ cloud \ client.py", строка 75, в from_service_account_json с io.open (json_credentials_path,"r", encoding = "utf-8") как json_fi: FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'key.json'

Я обнаружил ошибку, которую делал изначально.

enter image description here

Проверьте, является ли имя json учетных данных хранилища Google key.json или key.json.json.Возможно, при переименовании исходного json-файла учетных данных хранилища Google вы назвали его key.json, но расширение .json автоматически применяется после переименования, поэтому оно будет сохранено как key.json.json файл, но вы передаете key.json в storage.Client.from_service_account_json() (что на самом деле должно быть key.json.json).Попробуйте проверить это с помощью команды ls или dir.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...