gpt4 book ai didi

python - 删除所有 blobstore 数据的最简单方法是什么?

转载 作者:太空狗 更新时间:2023-10-30 01:55:41 26 4
gpt4 key购买 nike

从 blobstore 中删除所有 blob 的最佳方法是什么?我正在使用 Python。

我有很多 blob,我想将它们全部删除。我是目前正在做以下事情:

class deleteBlobs(webapp.RequestHandler): 
def get(self):
all = blobstore.BlobInfo.all();
more = (all.count()>0)
blobstore.delete(all);
if more:
taskqueue.add(url='/deleteBlobs',method='GET');

这似乎使用了大量的 CPU 并且(据我所知)正在做没什么用。

最佳答案

我使用这种方法:

import datetime
import logging
import re
import urllib

from google.appengine.ext import blobstore
from google.appengine.ext import db
from google.appengine.ext import webapp

from google.appengine.ext.webapp import blobstore_handlers
from google.appengine.ext.webapp import util
from google.appengine.ext.webapp import template

from google.appengine.api import taskqueue
from google.appengine.api import users


class IndexHandler(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello. Blobstore is being purged.\n\n')
try:
query = blobstore.BlobInfo.all()

index = 0

to_delete = []
blobs = query.fetch(400)
if len(blobs) > 0:
for blob in blobs:
blob.delete()
index += 1

hour = datetime.datetime.now().time().hour
minute = datetime.datetime.now().time().minute
second = datetime.datetime.now().time().second
self.response.out.write(str(index) + ' items deleted at ' + str(hour) + ':' + str(minute) + ':' + str(second))
if index == 400:
self.redirect("/purge")

except Exception, e:
self.response.out.write('Error is: ' + repr(e) + '\n')
pass

APP = webapp.WSGIApplication(
[
('/purge', IndexHandler),
],
debug=True)

def main():
util.run_wsgi_app(APP)


if __name__ == '__main__':
main()

我的经验是一次超过 400 个 blob 会失败,所以我让它每 400 个重新加载一次。我尝试了 blobstore.delete(query.fetch(400)),但我认为有现在是一个错误。什么都没有发生,什么也没有被删除。

关于python - 删除所有 blobstore 数据的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7345893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com