簡體   English   中英

我無法使用python腳本將文件上傳到谷歌雲?

[英]I can't upload a file to google cloud using python script?

我正在嘗試在GCP參考上提供的python腳本將文件上傳到谷歌雲存儲,但每次運行它時都會收到json密鑰憑證文件找不到的文件錯誤,即使它與python腳本位於同一目錄中。

錯誤是:

文件“c:\\ users \\ kundan \\ appdata \\ local \\ programs \\ python \\ python37-
32 \\ 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'

代碼如下:

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)

這是我用來將abc.txt文件上傳到谷歌存儲的代碼。

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

而且,以下是輸出:

在此輸入圖像描述

最初,我也遇到了和你一樣的錯誤:

回溯(最近一次調用最后一次):文件“gcp_upload.py”,第9行,在client = 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”

我發現了我最初犯的錯誤。

在此輸入圖像描述

檢查google存儲憑據json名稱是否為key.jsonkey.json.json 這可能是可能的,而重命名原來的谷歌存儲憑證JSON文件,將其命名為key.json ,但.json擴展名重命名后自動應用,所以它會被保存為key.json.json文件,但你是路過storage.Client.from_service_account_json() key.json (實際上需要是key.json.json )。 嘗試使用lsdir命令檢查它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM