我正在使用 python api,并在测试期间创建了一些孤立的 blob。
由于仪表板中的错误,我目前无法删除这些,并且在任何情况下,我都希望能够以编程方式执行此操作,因为一旦实体数量增加,手动执行此操作将不可行。
我正在使用 python api,并在测试期间创建了一些孤立的 blob。
由于仪表板中的错误,我目前无法删除这些,并且在任何情况下,我都希望能够以编程方式执行此操作,因为一旦实体数量增加,手动执行此操作将不可行。
如果您的 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重新实现它。
轻微改进:使用run
代替fetch
将返回一个可迭代而不是列表,因此您不需要限制查询中的条目数:
blobs = BlobInfo.all().run()
代替
blobs = BlobInfo.all().fetch(500)