【发布时间】:2013-07-15 09:08:18
【问题描述】:
任务:实现全局、跨实体组 Blob 共享。
我需要一个具有 BlobInfo 或 BlobKey 的字符串表示形式的祖先组作为 BlobReference 对象的父组,以具有强一致性。所以我构造了一个虚拟祖先组,其中 blob-key 作为引用 DB-object 的父级 ...
br = BlobReferenece(id=some_id, parent = ndb.Key("MyBlobKey",str(blob)))
br.put()
到目前为止,这在 SDK 中有效,但我担心这与 appengine 的文档路径相去甚远。
我之前的尝试未能使用 ndb.Key.from_old_key(blobinfo.key()) 将 blob-key 转换为 db-key。似乎没有合法的方法来获得对 BlobInfo 表的“db/ndb”引用(因为 BlobInfo 类提供了一个 db.Model-like 接口)。我在这里遗漏了什么吗?
【问题讨论】:
-
只要字符串中的 blobinfo 键是有效的照片,为什么它会无效?
-
但是不清楚你为什么要这样做。您需要多个子实体才能使其物有所值,因为我们没有父实体的任何实体根据定义都在其自己的实体组中
-
n 次 BlobReference 是父实体的子实体。确定有多少 BlobReferences 链接到单个 blob 的查询是在 blob 不再使用或删除最后一个 ref 后删除该 blob 所必需的 [query = BlobReference.query(ancestor=self.key.parent())]
-
广告评论 1:使用 blobkey 的字符串表示作为父项的 id(不通过普通 DB 键)是一种非常奇怪的方法,但唯一允许此查询但没有最终一致性的方法问题。
-
同意,您没有在原始帖子中说有多少实体共享祖先。
标签: google-app-engine python-2.7 app-engine-ndb