fix/various fixes
This commit is contained in:
28
api/app/core/storage_purge.py
Normal file
28
api/app/core/storage_purge.py
Normal file
@@ -0,0 +1,28 @@
|
||||
"""对象存储批量删除(尽力而为,不打断主流程)。"""
|
||||
|
||||
from collections.abc import Iterable
|
||||
|
||||
from app.core.logging import get_logger
|
||||
from app.ports.storage import ObjectStorage
|
||||
|
||||
logger = get_logger(__name__)
|
||||
|
||||
|
||||
def delete_object_storage_keys_best_effort(
|
||||
storage: ObjectStorage | None,
|
||||
keys: Iterable[str],
|
||||
*,
|
||||
log_prefix: str,
|
||||
) -> None:
|
||||
if storage is None:
|
||||
return
|
||||
seen: set[str] = set()
|
||||
for raw in keys:
|
||||
key = (raw or "").strip()
|
||||
if not key or key in seen:
|
||||
continue
|
||||
seen.add(key)
|
||||
try:
|
||||
storage.delete(key)
|
||||
except Exception as e:
|
||||
logger.warning("%s: COS 删除失败 key=%s err=%s", log_prefix, key, e)
|
||||
Reference in New Issue
Block a user