1

私はGAE Webアプリケーションの開発を始めたばかりです。Google クラウド ストレージのバケットのリストを取得しようとしています。Web サイトからいくつかのコードを見つけました。

私が見つけたウェブには3つの方法があります。

  1. Google ストレージ API の使用

    https://code.google.com/p/google-api-java-client/source/browse/storage-serviceaccount-appengine-sample/src/main/java/com/google/api/client/sample/storage/ appengine/serviceaccount/StorageSample.java?repo=samples&r=f0c6982b3cde8629511346641bfe4bb5eb28d73f

  2. Json ライブラリの使用

    ただし、このサンプルでは、​​バケットのドメイン検証を構成する必要があります。

  3. パイソンを使って

    私たちの既存のアプリケーションは、gae for Java によって開発されています。Python の方法を Java アプリケーションに含めることはできないと思います。

次に、No1の方法を修正したいと思います。

資格情報エラーが表示されます。現時点では、バケットは全員 (すべての認証済みユーザー) に許可されています。資格情報がどのように機能するかを理解する必要があると思います。0Auth2 に関する Google 開発者ページを読みました。bigquery のサンプルを見つけることができました。資格情報と Google クラウド ストレージに関するサンプルまたは優れた Web サイトがあれば、非常に役立ちます。

エラー;

Error: com.google.api.client.googleapis.extensions.appengine.auth.oauth2.AppIdentityCredential.(Ljava/util/Collection;)V

API コンソールで行ったこと:

  • クライアント ID の作成 (Web アプリケーション、サービス アカウント、インストール済みアプリケーションのそれぞれ)

  • Simple API Access の作成 (新しいサーバー キー、新しいブラウザ キー)

ローカル マシンで行ったこと。

  • gsutil で ACL を設定する

私の開発環境

  • Eclipse 3.6 helios (日本語パック)

  • 日食のためのgae Java

  • ゲー 1.8.0

  • ジャバ 1.6.31

  • Google ストレージ API

  • Google クライアント ライブラリ

  • その他(Tomcat、Maven)

  • Windows 7 英語と日本語言語パック

4

1 に答える 1

2

最初の試行 (番号 1) は、これを機能させることに集中するための最良の方法です。Marc が提供するコード サンプルでは、​​組み込みの App Engine App Identity モジュールを使用して、App Engine アプリを他の Google API に対して安全に識別します: https://developers.google.com/appengine/docs/java/appidentity/#Asserting_Identity_to_Google_APIs

ただし、確認すべき点が 2 つあります。

  1. App Identity モジュールは、ローカル devserver を使用すると機能しません。ローカルで実行している場合、ローカル サーバーが Google 本番 API に対して安全に身元を確認する方法はありません。そのため、ローカル テスト用にダウンロード可能なキーを持つサービス アカウントを使用するか、最も簡単なオプションを検討する必要があります。現在)、本番環境の App Engine 環境にデプロイしてテストします。

  2. アクセスしようとしている Google Cloud Storage バケットのアクセス制御リストに App Engine サービス アカウントのメール アドレスが追加されていることを確認します。管理コンソール (App Engine アプリ用) -> [アプリケーション設定] の下を見て、このメール アドレスを取得します。

サービス アカウント名: xxxxxxx@appspot.gserviceaccount.com

これを Google Cloud Storage アクセス制御リストに追加するには、Google Cloud Storage バケットを所有するプロジェクトのプロジェクト チームに追加するか、デフォルトのアクセス制御設定を使用していない場合は ACL に直接追加します: https://developers.google.com/storage/docs/accesscontrol

ダウンロード可能なキーを持つサービス アカウント - 実稼働環境の App Engine 環境でテストできない場合は、これをローカル テストに使用してください: https://developers.google.com/accounts/docs/OAuth2ServiceAccount

于 2013-06-07T15:54:50.987 に答える