From cadbab75418cb8fc6dc299014325035de692be32 Mon Sep 17 00:00:00 2001 From: eust-w Date: Mon, 22 Sep 2025 19:12:45 +0800 Subject: [PATCH] :sparkles: add feat --- optimized_file_handler.py | 27 ++++++++++++++++----------- requirements.txt | 2 +- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/optimized_file_handler.py b/optimized_file_handler.py index 1679669..a85346b 100644 --- a/optimized_file_handler.py +++ b/optimized_file_handler.py @@ -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 diff --git a/requirements.txt b/requirements.txt index 3bd914b..d095230 100644 --- a/requirements.txt +++ b/requirements.txt @@ -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