3

ローカル システムで実行されている低レベルの Java API を使用して、(ウェブ アプリケーションやサーブレットではなく) スタンドアロンの Java アプリから Google Datastore にアクセスしようとしています。

remoteapiは、これを行う最も簡単な方法のようです。ただし、サーバーごとに指定する必要があります

RemoteApiOptions options = new RemoteApiOptions()
   .server("your_app_id.appspot.com", 443)    
   .useApplicationDefaultCredential();

データストアにアクセスするための server(...) 呼び出しを指定するにはどうすればよいですか? 私は走った

gcloud auth login

また、Datastore 用に構成されたプロジェクト (プロジェクト ID など) がありますが、アプリが含まれていないため、「app_id」はありません。

データストアにアクセスするための標準サーバーはありますか? または、スタンドアロンの Java アプリから Datastore にアクセスするためのより良い方法はありますか?

4

1 に答える 1

9

App Engine の外部で Cloud Datastore にアクセスするには、Remote API を含まないドキュメントに従ってください。そのページに示されている完全な例では Maven (Java バージョン用) を使用していますが、開発方法を好まない場合は、使用例としてソースを参照し、Google Cloud Client Library for Javaを個別にインストールできます。(App Engine や Compute Engine ではなく) スタンドアロンで実行する場合は、そのページの例に従って、明示的に承認します...:

import com.google.gcloud.AuthCredentials;
import com.google.gcloud.datastore.Datastore;
import com.google.gcloud.datastore.DatastoreOptions;
import com.google.gcloud.datastore.Entity;
import com.google.gcloud.datastore.Key;
import com.google.gcloud.datastore.KeyFactory;

DatastoreOptions options = DatastoreOptions.builder()
  .projectId(PROJECT_ID)
  .authCredentials(AuthCredentials.createForJson(
    new FileInputStream(PATH_TO_JSON_KEY))).build();
Datastore datastore = options.service();
KeyFactory keyFactory = datastore.newKeyFactory().kind(KIND);
Key key = keyFactory.newKey(keyName);
Entity entity = datastore.get(key);
于 2016-03-09T00:17:14.443 に答える