|
|
@@ -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)
|