__BlobFileIndex__ 填充数据存储配额
Posted
技术标签:
【中文标题】__BlobFileIndex__ 填充数据存储配额【英文标题】:__BlobFileIndex__ fills Datastore Quota 【发布时间】:2012-11-21 21:32:46 【问题描述】:我将对象序列化到应用程序中的 blobstore,并在它们发生更改时删除并重新创建它们。我知道这不是最好的方法,但我发现这是快速原型制作的好方法。
现在我正处于使用数据存储的阶段,但是我遇到了问题。我的数据存储配额已满! :) 我为这个问题做了很多搜索,但我在这里。
显然对于每个 blob,__BlobInfo__ 和 __BlobFileIndex__ 种类保留有关 blob 的信息.我的问题是当我删除 blob 时,__BlobInfo__ 中的信息被删除,但 __BlobFileIndex__
我拼命尝试了 appcfg vacum_indexes,但没有达到预期的效果。
顺便说一下,我用的是Java平台。
这是我的问题
-
如何清除未使用的 __BlobFileIndex__ 条目?
什么是处理这种情况不再发生的正确方法?
谢谢。
编辑:哇哦!我现在看到我无法删除这些不需要的索引 a) 数据存储区管理员未列出它们 b)手动删除代码抛出异常(java.lang.IllegalArgumentException:非法key.path.element.type:BlobFileIndex)由于以双下划线开头的实体是应用程序引擎保留的实体,它不允许我删除它.谷歌的伙计们,我被困住了 在这里:)
【问题讨论】:
我使用 Python。我知道 SDK 中 Blobstore 的实现/仿真与 GAE 本身不同。在 GAE 中,您没有像 BlobInfo 这样以 __ 开头的额外类型。 您现在是否将 blob 存储在数据存储区中?你对索引是什么意思? GAE 中的 blob 属性没有被索引,BlobFileIndex 应该是什么? @voscausa 在数据存储查看器中运行“SELECT * FROM _____BlobFileIndex_____”会为我返回大量结果。 @Cigiller。你说的很对。查询提供隐藏的种类。 @fmt.Println.MKO 不,我不在数据存储区中存储 blob。 Blob 元数据由应用引擎存储在数据存储中,这就是问题所在。 【参考方案1】:一旦有解决方案,您可以在此问题上加注星标以得到通知...http://code.google.com/p/googleappengine/issues/detail?id=6849
【讨论】:
我已经做到了。第 20 个抱怨者是我 :) 我所寻求的至少是一种解决方法,直到它修复为止。【参考方案2】:我遇到了这个问题,但找到了解决方案:
对于任何试图以编程方式删除 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)
【讨论】:
这对我不起作用。在删除时,我收到错误:BadRequestError: The kind "BlobFileIndex" is reserved以上是关于__BlobFileIndex__ 填充数据存储配额的主要内容,如果未能解决你的问题,请参考以下文章
我有 2 个组合框(comboBox_1,comboBox_2)comboBox_1 并用正确的数据填充组合框_2
Juc18_Java内存模型对象头Mark Word实例数据对齐填充谈谈new Object( )占多大内存