使用URL Fetch在两个GAE Web应用程序之间交换NDB实体

时间:2014-04-05 10:53:00

标签: python google-app-engine google-cloud-datastore app-engine-ndb urlfetch

我计划使用URL Fetch在两个GAE网络应用之间交换NDB实体。

一个Web应用程序可以使用实体模型名称,起始实体索引号和要获取的实体数启动HTTP POST请求。每个实体都有一个索引号,对于新实体,索引号将按顺序递增。

发送实体:
可以添加一些分隔符以分隔不同的实体以及分离实体的属性。 HTTP响应将具有包含实体数据的变量(例如"内容")。

接收Side Web APP:
接收方Web应用程序将解析收到的数据,并通过创建新实体来存储实体及其属性值,然后放置它们

两个网络应用程序都运行GAE Python,并且具有相同的模型。

我的问题: 上述方法有什么缺点吗? 有没有更好的方法在代码中以自动方式实现这一目标?

我打算将此实现用于某种不常见的数据备份设计实现

2 个答案:

答案 0 :(得分:2)

您可以对实体使用NDB to_dict()方法,并使用json交换数据。 如果有很多数据,你可以使用光标。

要交换实体密钥,您可以将安全密钥添加到字典中。

答案 1 :(得分:0)

  

由于数据变化不会频繁(例如三个月一次)   对于一个实体甚至更晚的),

我建议使用数据存储管理员来复制数据。

https://developers.google.com/appengine/docs/adminconsole/datastoreadmin?hl=zh-tw#copying_entities_to_another_application

如果您想获得更多控制权,请使用端点proto datastore api或remote_api。

http://endpoints-proto-datastore.appspot.com/