- DB: segments 用户输入文本(Alembic 0002) - Chat: 阶段检测/阶段提示/回复限制,编排与访谈/画像 prompts 调整 - Memoir: 忠实度检查 agent,叙事与分类等链路更新 - Core: agent 日志、Alembic 启动、LangChain/日志/配置等 - Story: time_hints;Memory 检索与相关测试 - Expo: 助手头像、会话页与消息拆分、实时会话与文案/i18n - Docs/scripts/tests: 迁移脚本、LLM JSON/记忆检索文档、新增单测
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("{}: COS 删除失败 key={} err={}", log_prefix, key, e)
|