我尝试使用在我的本地系统上运行的低级Java API从独立的Java应用程序(不是Web应用程序或servlet)访问Google Datastore。
remoteapi似乎是最简单的方法。但是,我需要为每个
指定一个服务器RemoteApiOptions options = new RemoteApiOptions()
.server("your_app_id.appspot.com", 443)
.useApplicationDefaultCredential();
如何指定服务器(...)调用以访问数据存储区?我跑了
gcloud auth login
我有一个为数据存储配置的项目(带有项目ID等),但没有' app_id'因为没有涉及应用程序。
是否有用于访问数据存储区的标准服务器?或者有更好的方法从独立的Java应用程序访问数据存储区吗?
答案 0 :(得分:6)
要访问App Engine外部的Cloud Datastore,请按照the docs进行操作,该Google Cloud Client Library for Java不涉及Remote API。该页面上给出的完整示例使用Maven(对于Java版本),但是,如果您不喜欢开发,则可以将源代码视为一个用法示例,并单独安装{{3 }};对于独立运行(不在App 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);