1

我正在寻找一种在 Google 应用程序引擎中以编程方式将数据从一个应用程序传输到另一个应用程序的方法。我知道有一种方法可以通过 database_admin 控制台实现这一点,但该过程的时间效率非常低。

我目前正在使用谷歌云存储(GCS)来实现这一点,但这涉及查询数据,将其保存到 GCS,然后从不同的应用程序中读取 GCS 并恢复它。如果有人知道以编程方式在两个应用程序之间传输数据的更简单方法,请告诉我。

谢谢!

4

4 回答 4

1

我自己没有尝试过,但听起来应该可以:使用 data_store 管理员将您的对象从一个应用程序备份到 GCS,然后使用您的另一个应用程序从 GCS 恢复该文件。如果您只需要一次同步,这应该是一个好方法。

如果您需要不断地将数据从一个应用程序复制到另一个应用程序,那么在一侧或两侧引入 REST 端点可能会有所帮助:

https://code.google.com/p/appengine-rest-server/(这是在 Python 中,我知道,但只需为 REST 端点定义您的应用程序版本)

您只需要确保您的模型定义在双方都匹配(几乎使用相同的部署代码更新双方的应用程序)并且只有需要同步数据跟踪上次同步时间并使用 REST 端点来拉取的一方在新数据中。Cron Jobs 可以做到这一点。

或者,在您的所有模型上创建一个 PostPut 回调,以便在每次将模型写入您的数据存储区到另一个应用程序上的正确 REST 端点时进行一次 POST 调用。

您可以使用一种方法批量更新,或者使用另一种方法保持不断更新的版本(以更多调用为代价)。

于 2013-03-14T13:11:44.073 回答
0

您可以使用 bulkloader 创建数据备份,然后在另一个应用程序上恢复它。

此处的详细信息: https ://developers.google.com/appengine/docs/python/tools/uploadingdata?csw=1#Python_Downloading_and_uploading_all_data

如果您使用的是 Java,请参阅这篇文章: 下载 Google App Engine 数据库

于 2013-08-27T22:50:43.467 回答
0

您是在尝试在两个 App Engine 应用程序之间移动数据,还是尝试从 App Engine 中导出所有数据以便迁移到不同的托管系统?您的问题没有足够的信息来理解您正在尝试做什么。基于模糊的要求,我会说通常这将使用您在一个公开数据的应用程序中编写的 Web 服务来处理,而其他应用程序调用该服务来使用数据。我不确定为什么 Cloud Endpoints 被否决,因为它提供了一种很好的方式来将您的数据公开为基于 JSON 的 Web 服务,而代码工作量最少。

我建议在您的问题中添加更多详细信息,例如您要完成的工作以及模拟数据示例。

于 2013-03-14T13:09:28.447 回答
-1

我不知道这是否适合您的具体场景,但Google Cloud Endpoints绝对是一种从 Google App Engine 以编程方式传输数据的简单方法。

这是一种 REST Web 服务的 Google 实现,因此它们允许您使用 URL 共享资源。这仍然是一项实验性技术,但只要我与他们合作过,他们就可以完美地工作。此外,它们与 GAE 和Google Plugin for Eclipse很好地集成在一起。

您可以从JDO持久类自动生成端点,我认为您也可以自动生成客户端库(尽管我没有尝试过)。

于 2013-03-14T00:23:37.333 回答