簡體   English   中英

App Engine 項目訪問谷歌雲存儲的默認憑據?

[英]Default credential for app engine project accessing google cloud storage?

我有一個應用程序引擎項目,我想訪問我的谷歌雲存儲默認存儲桶。 獲取憑證 object 的第一步失敗,在實時實例上執行以下操作:

Credential creds = GoogleCredential.getApplicationDefault();

我收到的異常消息:

“應用程序默認憑據不可用。如果在 Google Compute Engine 中運行,則它們可用。否則,環境變量 GOOGLE_APPLICATION_CREDENTIALS 必須定義為指向定義憑據的文件。請參閱https://developers.google.com/accounts/docs /application-default-credentials了解更多信息。”

此處的文檔說生產應用程序引擎項目應該有權訪問默認憑據?:

https://developers.google.com/identity/protocols/application-default-credentials

“3. 如果您在 Google App Engine 生產環境中運行,將使用與該應用程序關聯的內置服務帳戶。”

我缺少一些設置嗎?

我的應用引擎版本(gradle):

com.google.appengine:appengine-java-sdk:1.9.18

和谷歌雲存儲庫版本:

com.google.apis:google-api-services-storage:v1-rev35-1.20.0

謝謝

轉到Google Developers Console - >憑據並創建默認服務帳戶.json密鑰。 當你這樣做時,它會為你下載一個像default-account-credentials.json這樣的文件。 然后,您必須將該文件放在app引擎項目中的某個位置。 您致電時將引用此文件

Credential creds = GoogleCredential.getApplicationDefault();

但是,在此之前,您必須將環境變量設置為該文件位置。 為此,打開你的appengine-web.xml文件並將這一行放入其中:

<env-variables>
            <env-var name="GOOGLE_APPLICATION_CREDENTIALS"
                value="WEB-INF/default-account-credentials.json" />
        </env-variables>

其中value是您剛剛下載的.json creds文件的路徑。

現在它會起作用。 (你的gradle進口很好)

我發布這個解決方案是為了幫助像我這樣仍然需要幫助解決這個錯誤的人。 在你的系統上安裝gcloud,select你要在gcloud window中使用的項目,然后在gcloud window中使用這個命令驗證自己: “gcloud auth application-default login”生成一個名為application_default_credentials.json的文件。 在同一系統上運行的程序將自動使用此文件進行身份驗證。 按照此鏈接安裝 gcloud: https://cloud.google.com/docs/authentication/provide-credentials-adc?hl=en_GB

暫無
暫無

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

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