代码之家  ›  专栏  ›  技术社区  ›  Gareth Simpson

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

  •  5
  • Gareth Simpson  · 技术社区  · 15 年前

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

    由于仪表板中的一个错误,我目前无法删除这些,在任何情况下,我希望能够以编程方式完成这项工作,因为一旦实体数量增加,就无法手动完成这项工作。

    2 回复  |  直到 10 年前
        1
  •  13
  •   Nick Johnson    15 年前

    如果您的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 .

        2
  •  1
  •   Kester Allen    10 年前

    轻微改善:使用 run 而不是 fetch 将返回iterable而不是列表,因此不需要限制查询中的条目数:

    blobs = BlobInfo.all().run()
    

    而不是

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