0

我正在尝试通过 Google 插件在 Eclipse Mars 上使用 Cloud Datastore 和低级 API,但我意识到我错过了 Google 教程中使用的一些库:

//I was using this
com.google.appengine.api.datastore.Entity;
Entity a = Entity.builder(..) // method does not exist I presume
//and the tutorials use this instead
com.google.cloud.datastore.Entity;

因此,在找到本指南后:https ://developers.google.com/eclipse/docs/using_sdks ,我安装了适用于 Mac OS X 的 Google Cloud SDK(google-cloud-sdk-130.0.0-darwin-x86_64.tar),但是当我尝试添加 sdk,但出现错误:无法在 /Users/../google-cloud-sdk 2 处初始化 App Engine SDK

这是我打开下载文件并运行bin/gcloud init的目录,所以我猜 sdk 应该安装在那里还是不是?我如何找到它的路径?我应该尝试不同的版本吗?我对终端很糟糕..

你能解释一下类之间的区别吗?当我将数据存储部署到应用程序引擎时,我认为数据存储已经在云中了。有两种类型的数据存储吗?

4

1 回答 1

0

旧的 GPE(适用于 Eclipse 的 Google 插件)基于 App Engine Java SDK (appcfg),而不是 Cloud SDK (gcloud)。您引用的页面是在 Cloud SDK 存在之前编写的。我将不得不对其进行更新以使其更清晰。

一个新的基于 GCloud 的开源 Eclipse 插件正在开发中。如果你愿意,你可以在这个早期阶段尝试一下,但请准备好提交错误。

我从您的问题中注意到的其他一些事情:“实体”是一个相当通用的名称,出现在很多 API 中,并不是所有的实体类都是同一个东西。在这种情况下,尽管 com.google.appengine.api.datastore.Entity 和 com.google.cloud.datastore.Entity 都指的是 App Engine 中的基本 BLOB 存储,Cloud Datastore是一个 NoSQL 数据库。然而:

  • com.google.appengine.api.datastore 被 servlet 和其他在 Google App Engine 上运行的程序用来与 Cloud Datastore 通信。

  • com.google.cloud.datastore 由在您自己的非 App Engine 计算机上运行的程序使用,以在后台使用 HTTP 与 Cloud Datastore 进行通信。

也就是说,只有在编写需要存储数据的 App Engine 应用程序时,才使用 com.google.appengine.api.datastore。您可以将 com.google.cloud.datastore 用于任何应用程序,无论它是否在 App Engine 上运行。它们可以从同一个数据库读取和写入。

于 2016-10-19T12:05:06.347 回答