7

我将对象序列化到我的应用程序中的 blobstore,并在它们更改时删除并重新创建它们。我知道这不是最好的方法,但我发现这是快速原型制作的好方法。

现在我正处于使用数据存储的阶段,但是我遇到了问题。我的数据存储配额已满!:) 我为这个问题做了很多搜索,但我在这里。

显然,对于每个 blob,__ BlobInfo ____ BlobFileIndex __种都保留有关 blob 的信息。我的问题是当我删除 blob 时,__ BlobInfo __中的信息被删除,但__ BlobFileIndex __中的信息没有被删除

我拼命尝试了 appcfg vacum_indexes,但这并没有达到预期的效果。

顺便说一句,我使用Java平台。

这是我的问题

  1. 如何清除未使用的__ BlobFileIndex __条目?
  2. 处理这种情况不再发生的正确方法是什么?

谢谢你。

编辑:哇哦!我现在看到我无法删除这些不需要的索引 a)数据存储管理员没有列出它们 b)手动删除代码抛出异常(java.lang.IllegalArgumentException:非法 key.path.element.type:BlobFileIndex)因为以双下划线开头的实体是应用引擎保留实体,它不允许我删除它。谷歌的伙计们,我被困在这里 :)

4

2 回答 2

3

您可以对此问题加注星标,以便在有解决方案后立即收到通知...
http://code.google.com/p/googleappengine/issues/detail?id=6849

于 2012-12-04T19:25:46.230 回答
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)
于 2014-02-11T09:55:27.163 回答