Это код, который я использовал для загрузки файла 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"))
И ниже вывод:
Первоначально я также получал ту же ошибку, что и вы:
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'
Я обнаружил ошибку, которую делал изначально.
Проверьте, является ли имя 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
.