2010-05-29 31 views
5

Tôi đang sử dụng api python và đã tạo ra một vài đốm màu mồ côi trong khi thử nghiệm.Có thể tìm và xóa các đốm màu mồ côi trong blobstore của công cụ ứng dụng không?

Vì lỗi trong trang tổng quan, hiện tại tôi không thể xóa các lỗi này và trong bất kỳ trường hợp nào, tôi muốn có thể thực hiện việc này theo cách lập trình vì sẽ không thể thực hiện thủ công khi số lượng thực thể đi lên.

Trả lời

13

Nếu trường BlobReferenceProperty của bạn được lập chỉ mục, thì có, nó hoàn toàn có thể.

Lớp BlobInfo cung cấp cùng một tập hợp các lĩnh vực như một mô hình thường xuyên, vì vậy bạn có thể làm điều đó một cái gì đó như thế này:

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

Nếu bạn có nhiều hơn một vài đốm màu, có thể bạn muốn reimplement này sử dụng vừa giảm mapreduce API.

1

nhẹ cải thiện: sử dụng run thay vì fetch sẽ trả về một iterable thay vì một danh sách, do đó bạn không cần phải hạn chế số lượng các mục trong truy vấn:

blobs = BlobInfo.all().run() 

thay vì

blobs = BlobInfo.all().fetch(500) 
Các vấn đề liên quan