diff --git a/backend/database.py b/backend/database.py index 0409ec0..2e69c60 100644 --- a/backend/database.py +++ b/backend/database.py @@ -4,8 +4,8 @@ from sqlalchemy.orm import sessionmaker import os from dotenv import load_dotenv -# Load environment variables -load_dotenv() +# Load environment variables(override=True:.env 覆盖已有环境变量,避免系统里 DEBUG=true 导致与 .env 中 DEBUG=False 冲突) +load_dotenv(override=True) # Database configuration DATABASE_HOST = os.getenv("DATABASE_HOST", "localhost") diff --git a/backend/main.py b/backend/main.py index 717eeb5..df9620c 100644 --- a/backend/main.py +++ b/backend/main.py @@ -10,7 +10,7 @@ from routes.auth import router as auth_router from security import get_current_user # Load environment variables -load_dotenv() +load_dotenv(override=True) # Configure logging logging.basicConfig( diff --git a/backend/ota_storage.py b/backend/ota_storage.py index face3a6..248e08b 100644 --- a/backend/ota_storage.py +++ b/backend/ota_storage.py @@ -16,13 +16,9 @@ OTA_MODEL_X8 = "Luxsin-X8" OTA_MODEL_X9 = "Luxsin-X9" OTA_UPLOAD_MODELS = {OTA_MODEL_X8, OTA_MODEL_X9} -# 本地根目录;实际文件路径为 {根}/{md5前5位}/LUXSIN.PKG -OTA_UPLOAD_DIR_DEV = os.getenv( - "OTA_UPLOAD_DIR_DEV", "H:/soft/projects/luxsin/dashboard/ota" -) -OTA_UPLOAD_DIR_PROD = os.getenv( - "OTA_UPLOAD_DIR_PROD", "/data/project/dashboard/upload" -) +# 默认本地根目录;实际路径为 {根}/{md5前5位}/LUXSIN.PKG(具体目录在 get_ota_upload_dir 内按当前环境读取) +_OTA_UPLOAD_DIR_DEV_DEFAULT = "H:/soft/projects/luxsin/dashboard/ota" +_OTA_UPLOAD_DIR_PROD_DEFAULT = "/data/project/dashboard/upload" AWS_REGION = os.getenv("AWS_REGION", "eu-central-1") AWS_ACCESS_KEY_ID = os.getenv("AWS_ACCESS_KEY_ID", "") @@ -39,8 +35,12 @@ OTA_FILENAME_X9 = "LUXSIN.PKG" def get_ota_upload_dir() -> Path: - is_dev = os.getenv("DEBUG", "False").lower() in ("true", "1", "yes") - raw = OTA_UPLOAD_DIR_DEV if is_dev else OTA_UPLOAD_DIR_PROD + """按 DEBUG 选开发/生产目录;每次调用重新读环境变量,避免 import 早于 load_dotenv。""" + debug_val = (os.getenv("DEBUG") or "false").strip().lower() + is_dev = debug_val in ("true", "1", "yes", "on") + dev = os.getenv("OTA_UPLOAD_DIR_DEV", _OTA_UPLOAD_DIR_DEV_DEFAULT) + prod = os.getenv("OTA_UPLOAD_DIR_PROD", _OTA_UPLOAD_DIR_PROD_DEFAULT) + raw = dev if is_dev else prod return Path(raw) diff --git a/backend/routes/ota.py b/backend/routes/ota.py index 41ddce1..23e210f 100644 --- a/backend/routes/ota.py +++ b/backend/routes/ota.py @@ -16,7 +16,7 @@ from ota_storage import ( upload_x8_package_to_s3, ) -load_dotenv() +load_dotenv(override=True) # Configure logging logger = logging.getLogger(__name__) diff --git a/backend/security.py b/backend/security.py index 9c4d3ba..fbec419 100644 --- a/backend/security.py +++ b/backend/security.py @@ -8,7 +8,7 @@ from dotenv import load_dotenv from fastapi import HTTPException, Security from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer -load_dotenv() +load_dotenv(override=True) logger = logging.getLogger(__name__)