亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Google 應用程序憑據問題

Google 應用程序憑據問題

皈依舞 2022-01-11 16:44:25
您好首先這是我第一次使用谷歌的服務。我正在嘗試使用 Google AutoML Vision Api(自定義模型)開發應用程序。我已經構建了一個自定義模型并生成了 API 密鑰(我希望我做得正確)。經過多次嘗試通過 Ionics 和 Android 進行開發并且未能連接到 API。我現在已經在 Python(在 Google Colab 上)中使用了給定代碼的預測建模,即使這樣我仍然收到一條錯誤消息,指出無法自動確定憑據。我不確定我在哪里出錯了。請幫忙??焖懒?。#installing & importing libraries !pip3 install google-cloud-automlimport sys  from google.cloud import automl_v1beta1from google.cloud.automl_v1beta1.proto import service_pb2#import key.json file generated by GOOGLE_APPLICATION_CREDENTIALSfrom google.colab import filescredentials = files.upload()#explicit function given by Google accounts [https://cloud.google.com/docs/authentication/production#auth-cloud-implicit-python][1]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(credentials)# Make an authenticated API requestbuckets = list(storage_client.list_buckets())print(buckets)#import image for predictionfrom google.colab import filesYOUR_LOCAL_IMAGE_FILE = files.upload()#prediction code from modellingdef get_prediction(content, project_id, model_id):prediction_client = automl_v1beta1.PredictionServiceClient()name = 'projects/{}/locations/uscentral1/models/{}'.format(project_id,         model_id)payload = {'image': {'image_bytes': content }}params = {}request = prediction_client.predict(name, payload, params)return request  # waits till request is returned#print function substitute with values  content = YOUR_LOCAL_IMAGE_FILE project_id = "REDACTED_PROJECT_ID" model_id = "REDACTED_MODEL_ID" print (get_prediction(content, project_id,  model_id))運行最后一行代碼時的錯誤消息:
查看完整描述

1 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

credentials = files.upload()

storage_client = storage.Client.from_service_account_json(credentials)

這兩行是我認為的問題。第一個實際加載文件的內容,但第二個需要文件的路徑,而不是內容。


讓我們先解決第一行:我看到credentials在調用后傳遞你得到的credentials = files.upload()將不起作用,如它的文檔中所解釋的那樣。像你正在做的credentials那樣做,實際上并不直接包含文件的值,而是文件名和內容的字典。


假設您只上傳 1 個憑據文件,您可以像這樣獲取文件的內容(從這個 SO 答案中竊?。?/p>


from google.colab import files

uploaded = files.upload()

credentials_as_string = uploaded[uploaded.keys()[0]]

所以現在我們實際上將上傳文件的內容作為一個字符串,下一步是從中創建一個實際的憑據對象。


Github 上的這個答案顯示了如何從轉換為 json 的字符串創建憑據對象。


import json

from google.oauth2 import service_account


credentials_as_dict = json.loads(credentials_as_string)

credentials = service_account.Credentials.from_service_account_info(credentials_as_dict)

最后我們可以使用這個憑證對象創建存儲客戶端對象:


storage_client = storage.Client(credentials=credentials)

請注意,我沒有對此進行測試,所以請試一試,看看它是否真的有效。


查看完整回答
反對 回復 2022-01-11
  • 1 回答
  • 0 關注
  • 268 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號