29 lines
732 B
Python
29 lines
732 B
Python
"""对象存储批量删除(尽力而为,不打断主流程)。"""
|
|
|
|
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)
|