我在我的应用程序中将对象序列化为blobstore,并在它们发生更改时删除并重新创建它们。我知道这不是最好的方法,但我发现这是快速原型制作的好方法。
现在我处于使用数据存储区的阶段,但是我遇到了问题。我的数据存储配额已满! :)我做了很多搜索问题,但我在这里。
对于每个blob, __ BlobInfo __ ,以及 __ BlobFileIndex __ 种类,保留有关blob的信息。我的问题是当我删除blob时, __ BlobInfo __ 中的信息被删除,但 __ BlobFileIndex __ < /强>
我拼命尝试了appcfg vacum_indexes,但这并没有像预期的那样有用。
我顺便使用Java平台。
以下是我的问题
谢谢。
编辑:哇哦!我现在看到我无法删除这些不需要的索引 a)数据存储管理员不会列出它们 b)手动删除代码抛出异常(java.lang.IllegalArgumentException:非常key.path.element.type: BlobFileIndex )由于以双下划线开头的实体是app引擎保留实体,它不允许我删除它。谷歌的伙计们,我很难受 在这里:)答案 0 :(得分:3)
您可以对此问题加注星标,以便在有解决方案后立即通知...
http://code.google.com/p/googleappengine/issues/detail?id=6849
答案 1 :(得分:0)
我遇到了这个问题,但找到了解决方案:
对于任何试图以编程方式删除 BlobFileIndex 的人,您可以这样做:
query = datastore.Query("__BlobFileIndex__",{'blob_key': a_blob_key}, keys_only=True)
key = query.Get(1)
key_y = key[0]
datastore.Delete(key_y)