后端更新
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
from datetime import timedelta
|
||||
|
||||
from minio import Minio
|
||||
from minio.commonconfig import CopySource
|
||||
|
||||
# MinIO 客户端初始化
|
||||
minio_client = Minio(
|
||||
@@ -28,7 +29,7 @@ def get_upload_token(bucket_name, object_name, xpires=timedelta(minutes=15)):
|
||||
)
|
||||
|
||||
|
||||
def get_temp_url(bucket_name, object_name):
|
||||
def get_temp_url(bucket_name, object_name, seconds: float = 3600):
|
||||
# 如果 object_name 为 None 或空字符串,则返回默认图片
|
||||
if not object_name or not bucket_name:
|
||||
bucket_name = "system"
|
||||
@@ -36,7 +37,7 @@ def get_temp_url(bucket_name, object_name):
|
||||
|
||||
# 使用 presigned_get_object 获取临时 URL
|
||||
return minio_client.presigned_get_object(
|
||||
bucket_name, object_name, expires=timedelta(seconds=3600)
|
||||
bucket_name, object_name, expires=timedelta(seconds=seconds)
|
||||
)
|
||||
|
||||
|
||||
@@ -51,3 +52,28 @@ def get_temp_url_dict(bucket_name, object_dict, object_name):
|
||||
return minio_client.presigned_get_object(
|
||||
bucket_name, object_dict + "/" + object_name, expires=timedelta(seconds=3600)
|
||||
)
|
||||
|
||||
|
||||
# 移动文件(实际上是 copy + delete)
|
||||
def move_file(bucket_name, source_object_name, target_object_name):
|
||||
"""
|
||||
bucket_name: bucket名称
|
||||
source_object_name: 原对象路径,例如 folder1/test.jpg
|
||||
target_object_name: 目标对象路径,例如 folder2/test.jpg
|
||||
"""
|
||||
# 复制到新位置
|
||||
minio_client.copy_object(
|
||||
bucket_name, target_object_name, CopySource(bucket_name, source_object_name)
|
||||
)
|
||||
|
||||
# 删除原文件
|
||||
minio_client.remove_object(bucket_name, source_object_name)
|
||||
|
||||
|
||||
# 删除文件
|
||||
def delete_file(bucket_name, object_name):
|
||||
"""
|
||||
bucket_name: bucket名称
|
||||
object_name: 文件路径,例如 folder/test.jpg
|
||||
"""
|
||||
minio_client.remove_object(bucket_name, object_name)
|
||||
|
||||
@@ -3,7 +3,19 @@ from utils.GlobalVariable import LOCAL_IP
|
||||
RABBIT_HOST = LOCAL_IP
|
||||
RABBIT_USER = "ai_lab"
|
||||
RABBIT_PASSWORD = "123456"
|
||||
QUEUE_NAME = "analysis_queue"
|
||||
|
||||
|
||||
RABBIT_VHOST = "bbit_ai"
|
||||
QUEUE_NAME = "analysis_queue"
|
||||
|
||||
|
||||
SENTINEL_VHOST = "sentinel"
|
||||
SENTINEL_ANALYSIS_ALL_QUEUE_NAME = "sentinel.analysis_all_queue"
|
||||
SENTINEL_ANALYSIS_SIDE_QUEUE_NAME = "sentinel.analysis_side_queue"
|
||||
SENTINEL_ANALYSIS_FRONT_QUEUE_NAME = "sentinel.analysis_front_queue"
|
||||
|
||||
SENTINEL_FRONT_REQUEST_QUEUE = "sentinel.front_pic"
|
||||
|
||||
|
||||
def get_sentinel_front_queue_name(device_id):
|
||||
return f"{SENTINEL_FRONT_REQUEST_QUEUE}.{device_id}"
|
||||
|
||||
@@ -99,7 +99,7 @@ class YOLOSingleton:
|
||||
except Exception as e:
|
||||
cls._model = None
|
||||
cls._ready = False
|
||||
logger.error(f"❌ YOLO 模型加载失败: {e}")
|
||||
logger.error(f"❌蚕茧 YOLO 模型加载失败: {e}")
|
||||
|
||||
@classmethod
|
||||
def detect(cls, img_bytes: bytes):
|
||||
|
||||
Reference in New Issue
Block a user