0

在節點js中使用REST參考Google雲端存儲我在postman中得到了這個錯誤,我得到以下錯誤。 網址: https://datastore.googleapis.com/v1/projects/ {}專案編號:allocateIds Requset身體:GCP CLoudStore REST參考

{ 
"keys": [ 
{ 
    "partitionId": { 
    "namespaceId": "default", 
    "projectId": "superb-watch-172816" 
    }, 
    "path": [ 
    { 
     "kind": "User50records" 
    } 
    ] 
} 
]} 

我得到這個錯誤:

{ "error": { "code": 401, "message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", "status": "UNAUTHENTICATED" } }

回答

1

真正的匿名電話,以雲存儲是不允許的。您必須以某種方式向服務器確認自己。最低限度的是附加一個API密鑰,這基本上是您與某個項目或其他項目相關聯的聲明。如果您訪問的數據不是任何人都可公開查看的,那麼您還需要提供某種身份驗證,通常通過OAuth完成。

因此,假設這是公開數據,請儘量減少工作量:獲取an API key,然後在您的URL中追加一個「key = myKey」查詢參數。

驗證指南:https://cloud.google.com/docs/authentication/

+1

只是想addthatin命令,如果你不使用任何谷歌計算引擎或谷歌應用程序引擎,通過API使用GCS。有必要創建一個服務帳戶,從那裏你可以下載密鑰在XML或JSON。如果您使用的是GAE或GCE,則可以像Brandon所述的那樣創建API密鑰或使用服務的默認憑證。 –

+0

我試過用鑰匙得到了同樣的錯誤。 –

+0

@VinodKumarMarupu - 您可能需要提供身份驗證。快速測試這個方法是使用gcloud工具。運行'gcloud auth print-access-token'。將結果放入請求標題,如「Authorization:Bearer ya29.whateverxxxxxxxxxxxxxxxxxxxxxxx」 –