5

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

由于仪表板中的错误,我目前无法删除这些,并且在任何情况下,我都希望能够以编程方式执行此操作,因为一旦实体数量增加,手动执行此操作将不可行。

4

2 回答 2

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重新实现它。

于 2010-06-01T09:24:10.937 回答
1

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

blobs = BlobInfo.all().run()

代替

blobs = BlobInfo.all().fetch(500)
于 2014-10-23T23:28:16.777 回答