是否可以在应用程序引擎blobstore中查找和删除孤立的blob?

时间:2010-05-29 17:30:55

标签: python google-app-engine blobstore

我正在使用python api并在测试期间创建了一些孤立的blob。

由于仪表板中存在错误,我目前无法删除这些错误,无论如何,我希望能够以编程方式执行此操作,因为一旦实体数量增加,手动执行此操作将不可行起来。

2 个答案:

答案 0 :(得分:13)

如果您的BlobReferenceProperty字段已编入索引,那么是的,很可能。

BlobInfo类提供与常规模型相同的字段集,因此您可以这样做:

blobs = BlobInfo.all().fetch(500)
for blob in blobs:
  if not MyModel.all().filter("blob_ref =", blob.key()).count(1):
    blob.delete()

如果你有多个blob,你可能想要使用最近减少的mapreduce API重新实现它。

答案 1 :(得分:1)

略有改进:使用run代替fetch将返回可迭代而不是列表,因此您无需限制查询中的条目数:

blobs = BlobInfo.all().run()

而不是

blobs = BlobInfo.all().fetch(500)