优化自动涂抹的图片删除逻辑

This commit is contained in:
2024-10-17 13:12:07 +08:00
parent 9c41fab95c
commit 84d106c7de

View File

@@ -1,6 +1,9 @@
import logging.config
import os
import re
import shutil
import time
import uuid
from time import sleep
import cv2
@@ -10,6 +13,7 @@ from db import MysqlSession
from db.mysql import ZxPhrec, ZxPhhd
from log import HOSTNAME
from photo_mask import PHHD_BATCH_SIZE, SLEEP_MINUTES, NAME_KEYS, ID_CARD_NUM_KEYS, SIMILAR_CHAR
from photo_review import set_batch_id
from ucloud import BUCKET, ufile
from util import image_util, common_util, model_util
@@ -218,17 +222,23 @@ def photo_mask(pk_phhd, name, id_card_num):
ZxPhrec.cRectype.in_(["3", "4"])
)).all()
session.close()
# 同一批图的标识
set_batch_id(uuid.uuid4().hex)
processed_img_dir = common_util.get_processed_img_path('')
os.makedirs(processed_img_dir, exist_ok=True)
for phrec in phrecs:
img_url = ufile.get_private_url(phrec.cfjaddress)
if not img_url:
continue
img_path = common_util.save_to_local(img_url)
original_img_path = common_util.save_to_local(img_url)
img_path = common_util.get_processed_img_path(phrec.cfjaddress)
shutil.copy2(original_img_path, img_path)
is_masked, image = mask_photo(img_path, name, id_card_num)
# 如果涂抹了要备份以及更新
if is_masked:
ufile.copy_file(BUCKET, phrec.cfjaddress, "drg2015", phrec.cfjaddress)
try:
ufile.copy_file(BUCKET, phrec.cfjaddress, "drg2015", phrec.cfjaddress)
ufile.upload_file(phrec.cfjaddress, image)
session = MysqlSession()
update_flag = (update(ZxPhrec).where(ZxPhrec.pk_phrec == phrec.pk_phrec).values(
@@ -239,8 +249,10 @@ def photo_mask(pk_phhd, name, id_card_num):
session.close()
except Exception as e:
logging.error("上传图片出错", exc_info=e)
finally:
common_util.delete_temp_file(image)
# 删除多余图片
if os.path.exists(processed_img_dir) and os.path.isdir(processed_img_dir):
shutil.rmtree(processed_img_dir)
def main():