add feat

This commit is contained in:
eust-w 2025-09-22 19:12:45 +08:00
parent 39e3fe76ea
commit cadbab7541
2 changed files with 17 additions and 12 deletions

View File

@ -16,8 +16,10 @@ from pathlib import Path
from PIL import Image
import numpy as np
from baidu_bos_manager import get_bos_manager
from mongodb_manager import get_mongodb_manager
# Optional external managers (BOS/Mongo) are disabled in minimal setup
# Previously:
# from baidu_bos_manager import get_bos_manager
# from mongodb_manager import get_mongodb_manager
logger = logging.getLogger(__name__)
@ -31,8 +33,9 @@ class OptimizedFileHandler:
SUPPORTED_IMAGE_FORMATS = {'.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp'}
def __init__(self, local_storage_dir=None):
self.bos_manager = get_bos_manager()
self.mongodb_manager = get_mongodb_manager()
# In minimal setup, BOS and MongoDB are not used
self.bos_manager = None
self.mongodb_manager = None
self.temp_files = set() # 跟踪临时文件
self.local_storage_dir = local_storage_dir or tempfile.gettempdir()
@ -126,14 +129,14 @@ class OptimizedFileHandler:
}
# 如果有BOS管理器也上传到BOS
if hasattr(self, 'bos_manager') and self.bos_manager:
if self.bos_manager:
bos_key = f"images/memory_{file_id}_{filename}"
bos_result = self._upload_to_bos_from_memory(file_content, bos_key, filename)
if bos_result:
metadata["bos_key"] = bos_key
metadata["bos_url"] = bos_result["url"]
if hasattr(self, 'mongodb_manager') and self.mongodb_manager:
if self.mongodb_manager:
self.mongodb_manager.store_file_metadata(metadata=metadata)
logger.info(f"✅ 内存处理图像成功: {filename} ({len(file_content)} bytes)")
@ -192,7 +195,7 @@ class OptimizedFileHandler:
}
# 如果有BOS管理器也上传到BOS
if hasattr(self, 'bos_manager') and self.bos_manager:
if self.bos_manager:
bos_key = f"images/temp_{file_id}_{filename}"
bos_result = self.bos_manager.upload_file(temp_path, bos_key)
if bos_result:
@ -200,7 +203,7 @@ class OptimizedFileHandler:
metadata["bos_url"] = bos_result["url"]
# 存储元数据到MongoDB
if hasattr(self, 'mongodb_manager') and self.mongodb_manager:
if self.mongodb_manager:
self.mongodb_manager.store_file_metadata(metadata=metadata)
logger.info(f"✅ 临时文件处理图像成功: {filename} ({file_stat.st_size} bytes)")
@ -282,6 +285,9 @@ class OptimizedFileHandler:
with self.temp_file_context(suffix=ext, delete_on_exit=False) as temp_path:
# 从BOS下载文件
if not self.bos_manager:
logger.warning("BOS manager is not available; skip download.")
return None
success = self.bos_manager.download_file(bos_key, temp_path)
if success:
@ -298,15 +304,14 @@ class OptimizedFileHandler:
def _upload_to_bos_from_memory(self, content: bytes, bos_key: str, filename: str) -> Optional[Dict[str, Any]]:
"""从内存直接上传到BOS"""
try:
if not self.bos_manager:
return None
# 创建临时文件用于上传
with self.temp_file_context() as temp_path:
with open(temp_path, 'wb') as temp_file:
temp_file.write(content)
# 上传到BOS
result = self.bos_manager.upload_file(temp_path, bos_key)
return result
except Exception as e:
logger.error(f"❌ 内存上传到BOS失败: {filename}, {e}")
return None

View File

@ -1,5 +1,4 @@
torch>=2.0.0
torchvision>=0.15.0
transformers>=4.30.0
accelerate>=0.20.0
faiss-cpu>=1.7.4
@ -9,3 +8,4 @@ tqdm>=4.65.0
flask>=2.3.0
werkzeug>=2.3.0
requests>=2.31.0
safetensors>=0.4.0