__BlobFileIndex__填充数据存储区配额

时间:2012-12-04 09:37:46

标签: google-app-engine datastore blobs gae-quotas

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

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

对于每个blob, __ BlobInfo __ ,以及 __ BlobFileIndex __ 种类,保留有关blob的信息。我的问题是当我删除blob时, __ BlobInfo __ 中的信息被删除,但 __ BlobFileIndex __ < /强>

我拼命尝试了appcfg vacum_indexes,但这并没有像预期的那样有用。

我顺便使用Java平台。

以下是我的问题

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

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

2 个答案:

答案 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)