2

我已經將一些測試圖片上傳到Google Cloud Bucket,但不想讓它們公開(這會是作弊)。當我試圖運行一個休息呼籲谷歌視覺API獲取:如何讓Google Vision API在同一個項目中訪問Google雲端存儲分區

{ 
    "responses": [ 
    { 
     "error": { 
     "code": 7, 
     "message": "image-annotator::User lacks permission.: Can not open file: gs://images-translate-156512/P1011234.JPG" 
     } 
    } 
    ] 
} 

什麼是使谷歌願景API同一個項目中訪問谷歌雲存儲服務對象的步驟是什麼?目前,我在使用Google Vision時只使用API​​密鑰。我懷疑可能需要服務帳戶和GCS對象上的ACL。

我可以完全繞過GCS,base64對圖像進行編碼併發送給Google Vision API,但真的想嘗試解決這個用例。尚未使用ACL或服務帳戶。

任何幫助讚賞

回答

2

API密鑰不用於授權。它們用於您想要指定哪個項目應該爲某個操作付費以及應該使用哪個項目的配額的情況,但它們不會將您認證爲任何特定的實體。

爲了將Cloud Vision API與非公共GCS對象一起使用,您需要將OAuth身份驗證信息連同您的請求一起發送給具有讀取GCS對象權限的用戶或服務帳戶。

授權是一個複雜的話題。我建議使用點對點實驗或爲正在開發的語言谷歌雲客戶端庫gcloud指令行實用程序

谷歌有授權這裏的指南:https://cloud.google.com/docs/authentication

+0

所以我創建服務帳戶並在存儲桶級別爲其分配ACL?此服務帳戶是否需要與Google Vision API或Google Storage保持一致? – smackenzie

+0

鏈接聲明所有Google Cloud API都需要驗證,但我只是發送API密鑰才能訪問Google Vision? – smackenzie

+1

服務帳戶並非絕對必要;您也可以使用自己的帳戶撥打電話。如果您確實想要使用服務帳戶,則需要爲GCS存儲桶授予讀取權限。 –

相關問題