3

我正在尝试使用在我的本地系统上运行的低级 Java API 从独立的 Java 应用程序(不是 Web 应用程序或 servlet)访问 Google Datastore。

remoteapi似乎是最简单的方法。但是,我需要为每个服务器指定一个服务器

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

如何指定 server(...) 调用以访问 Datastore?我跑了

gcloud auth login

我为 Datastore 配置了一个项目(带有项目 ID 等),但没有“app_id”,因为没有涉及应用程序。

是否有用于访问 Datastore 的标准服务器?还是有更好的方法从独立的 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 回答