我正在使用python api并在测试期间创建了一些孤立的blob。
由于仪表板中存在错误,我目前无法删除这些错误,无论如何,我希望能够以编程方式执行此操作,因为一旦实体数量增加,手动执行此操作将不可行起来。
答案 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)