Просмотр исходного кода

fix(oss): 修正 OSS 配置及增强日志信息

- 更新默认 OSS 端点地址和 use_ssl 配置,切换至内网测试环境
- 添加初始化过程详细日志,便于排查 S3 客户端初始化状态
- 增加上传器状态和关键步骤日志输出,提升可观察性
- upload_image 方法中补充日志,记录异步上传入口参数及执行情况
- 保持对 boto3 未安装情况的兼容处理和警告输出
wenhongquan 4 недель назад
Родитель
Сommit
969e643a31
2 измененных файлов с 24 добавлено и 10 удалено
  1. 2 2
      dual_camera_system/config/oss.py
  2. 22 8
      dual_camera_system/oss_uploader.py

+ 2 - 2
dual_camera_system/config/oss.py

@@ -10,11 +10,11 @@ S3_COMPATIBLE_CONFIG = {
     'retry_times': 3,           # 重试次数
     'custom_domain': '',        # 自定义域名(可选,用于生成访问 URL)
 
-    'endpoint_url': 'https://oss.dnnbuild.com',  # 如: http://localhost:9000
+    'endpoint_url': 'http://58.213.48.57:15900',  # 如: http://localhost:9000
     'region_name': 'us-east-1',
     'access_key_id': 'wvp',
     'secret_access_key': '6MnZFxZxRwbvS01khA9ldiawJuc9mytyiq2kEv3k',
     'bucket_name': 'wvp',
     'path_prefix': 'device',
-    'use_ssl': True,
+    'use_ssl': False,
 }

+ 22 - 8
dual_camera_system/oss_uploader.py

@@ -69,6 +69,7 @@ class OSSUploader:
         self.config = config or S3_COMPATIBLE_CONFIG
         
         self.enabled = self.config.get('enabled', False)
+        logger.info(f"[OSS] OSSUploader 初始化: enabled={self.enabled}, config={self.config}")
         
         # S3 客户端
         self.s3_client = None
@@ -95,34 +96,41 @@ class OSSUploader:
     
     def _init_client(self):
         """初始化 OSS 客户端"""
+        logger.info("[OSS] _init_client 开始...")
         try:
             self._init_s3_client()
+            logger.info(f"[OSS] _init_client 完成: enabled={self.enabled}")
         except Exception as e:
             logger.error(f"[OSS] 初始化客户端失败: {e}")
             self.enabled = False
     
     def _init_s3_client(self):
         """初始化 S3 兼容客户端"""
+        logger.info(f"[OSS] _init_s3_client 开始: boto3={BOTO3_AVAILABLE}, enabled={self.config.get('enabled', False)}")
+
         if not BOTO3_AVAILABLE:
             logger.error("[OSS] boto3 未安装")
             self.enabled = False
             return
-        
+
         if not self.config.get('enabled', False):
             logger.error("[OSS] S3 兼容配置未启用")
             self.enabled = False
             return
-        
+
         endpoint_url = self.config.get('endpoint_url', '')
         region_name = self.config.get('region_name', 'us-east-1')
         access_key_id = self.config.get('access_key_id', '')
         secret_access_key = self.config.get('secret_access_key', '')
-        
+
+        logger.info(f"[OSS] 配置检查: endpoint={endpoint_url}, key={access_key_id[:4] if access_key_id else 'None'}..., bucket={self.config.get('bucket_name', '')}")
+
         if not all([endpoint_url, access_key_id, secret_access_key]):
             logger.error("[OSS] S3 配置不完整")
             self.enabled = False
             return
-        
+
+        logger.info("[OSS] 尝试创建 S3 客户端...")
         self.s3_client = boto3.client(
             's3',
             endpoint_url=endpoint_url,
@@ -137,13 +145,16 @@ class OSSUploader:
     
     def start(self):
         """启动上传器"""
+        logger.info(f"[OSS] start() 被调用: enabled={self.enabled}, running={self.running}")
+
         if not self.enabled:
-            logger.info("[OSS] 上传器未启用")
+            logger.info("[OSS] 上传器未启用,直接返回")
             return
-        
+
         if self.running:
+            logger.info("[OSS] 上传器已经在运行")
             return
-        
+
         self.running = True
         self.worker_thread = threading.Thread(target=self._worker_loop, daemon=True)
         self.worker_thread.start()
@@ -284,8 +295,11 @@ class OSSUploader:
             oss_key: OSS 对象键(用于后续查询结果)
         """
         if not self.enabled:
+            logger.warning(f"[OSS] upload_image 返回空: enabled={self.enabled}")
             return ''
-        
+
+        logger.info(f"[OSS] upload_image 开始: path={local_path}, type={image_type}, batch={batch_id}")
+
         # 生成 OSS 路径
         timestamp = datetime.now().strftime("%Y%m%d")
         filename = os.path.basename(local_path)