|
@@ -1,129 +1,109 @@
|
|
import os
|
|
import os
|
|
import platform
|
|
import platform
|
|
|
|
|
|
-class Config:
|
|
|
|
- """Base configuration class"""
|
|
|
|
|
|
+def get_environment():
|
|
|
|
+ """
|
|
|
|
+ 获取当前运行环境
|
|
|
|
+ 优先级:
|
|
|
|
+ 1. 环境变量 FLASK_ENV
|
|
|
|
+ 2. 根据操作系统自动判断(Windows -> development, Linux -> production)
|
|
|
|
+ """
|
|
|
|
+ # 首先检查环境变量
|
|
|
|
+ env = os.environ.get('FLASK_ENV')
|
|
|
|
+ if env:
|
|
|
|
+ return env.lower()
|
|
|
|
+
|
|
|
|
+ # 根据操作系统判断
|
|
|
|
+ system = platform.system().lower()
|
|
|
|
+ if system == 'windows':
|
|
|
|
+ return 'development'
|
|
|
|
+ elif system == 'linux':
|
|
|
|
+ return 'production'
|
|
|
|
+ else:
|
|
|
|
+ return 'development' # 其他系统默认使用开发环境
|
|
|
|
+
|
|
|
|
+class BaseConfig:
|
|
|
|
+ """基础配置类,包含所有环境共享的配置"""
|
|
SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
|
|
SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
|
|
JSON_AS_ASCII = False
|
|
JSON_AS_ASCII = False
|
|
|
|
|
|
- # Platform specific configurations
|
|
|
|
|
|
+ # 平台特定配置
|
|
PLATFORM = platform.system().lower()
|
|
PLATFORM = platform.system().lower()
|
|
|
|
|
|
- # File paths
|
|
|
|
- if PLATFORM == 'windows':
|
|
|
|
- FILE_PATH = os.environ.get('FILE_PATH') or 'C:/temp/'
|
|
|
|
- elif PLATFORM == 'linux':
|
|
|
|
- FILE_PATH = os.environ.get('FILE_PATH') or '/tmp/'
|
|
|
|
-
|
|
|
|
- # Upload configurations
|
|
|
|
- UPLOAD_FOLDER = f"{FILE_PATH}resource_uploads/"
|
|
|
|
|
|
+ # 文件上传配置
|
|
ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif', 'xlsx', 'xls', 'csv'}
|
|
ALLOWED_EXTENSIONS = {'txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif', 'xlsx', 'xls', 'csv'}
|
|
|
|
|
|
- # MinIO configurations - 原配置
|
|
|
|
- """
|
|
|
|
- MINIO_HOST = os.environ.get('MINIO_HOST') or 'minio.citupro.com'
|
|
|
|
- MINIO_USER = os.environ.get('MINIO_USER') or 'default-user'
|
|
|
|
- MINIO_PASSWORD = os.environ.get('MINIO_PASSWORD') or 'default-password'
|
|
|
|
- MINIO_SECURE = True
|
|
|
|
- """
|
|
|
|
-
|
|
|
|
- # MinIO configurations - 新配置
|
|
|
|
- MINIO_HOST = '192.168.67.138:9000'
|
|
|
|
- MINIO_USER = 'citu-test'
|
|
|
|
- MINIO_PASSWORD = 'citu-test'
|
|
|
|
- MINIO_SECURE = False # 内网环境,设置为 False
|
|
|
|
- BUCKET_NAME = 'dataops-bucket' # 数据资源及元数据上传的bucket
|
|
|
|
-
|
|
|
|
- # Bucket configurations - 原配置
|
|
|
|
- """
|
|
|
|
- BUCKET_NAME = os.environ.get('BUCKET_NAME') or 'dev'
|
|
|
|
- if PLATFORM == 'windows':
|
|
|
|
- PREFIX = 'dataops-test'
|
|
|
|
- elif PLATFORM == 'linux':
|
|
|
|
- PREFIX = 'dataops'
|
|
|
|
- """
|
|
|
|
-
|
|
|
|
- # Bucket configurations - 新配置
|
|
|
|
- # BUCKET_NAME = 'dataops-test'
|
|
|
|
- PREFIX = '' # 由于 bucket_name 已经包含了所需信息,PREFIX 可以置空
|
|
|
|
-
|
|
|
|
- # 新增端口配置基类设置
|
|
|
|
- PORT = 5500 # 默认端口
|
|
|
|
-
|
|
|
|
- # 修改后(PostgreSQL配置)
|
|
|
|
-
|
|
|
|
- # SQLALCHEMY_DATABASE_URI = 'postgresql://postgres:citupgdba@192.168.3.143:5432/dataops'
|
|
|
|
- # 本地开发环境
|
|
|
|
- SQLALCHEMY_DATABASE_URI = 'postgresql://postgres:postgres@192.168.67.138:5432/dataops'
|
|
|
|
- SQLALCHEMY_ENGINE_OPTIONS = {
|
|
|
|
- 'pool_pre_ping': True,
|
|
|
|
- 'pool_recycle': 300,
|
|
|
|
- 'pool_size': 10,
|
|
|
|
- 'max_overflow': 20
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- # 修改后(PostgreSQL配置)
|
|
|
|
- """
|
|
|
|
- SQLALCHEMY_DATABASE_URI = 'postgresql://postgres:citumxl2357@127.0.0.1:5432/dataops'
|
|
|
|
|
|
+ # PostgreSQL 基础配置
|
|
SQLALCHEMY_ENGINE_OPTIONS = {
|
|
SQLALCHEMY_ENGINE_OPTIONS = {
|
|
'pool_pre_ping': True,
|
|
'pool_pre_ping': True,
|
|
'pool_recycle': 300,
|
|
'pool_recycle': 300,
|
|
'pool_size': 10,
|
|
'pool_size': 10,
|
|
'max_overflow': 20
|
|
'max_overflow': 20
|
|
- }
|
|
|
|
- """
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ # Neo4j 基础配置
|
|
|
|
+ NEO4J_ENCRYPTED = False
|
|
|
|
|
|
- # Neo4j配置段
|
|
|
|
-
|
|
|
|
- # NEO4J_URI = "bolt://192.168.3.143:7687"
|
|
|
|
- # NEO4J_HTTP_URI = "http://192.168.3.143:7474"
|
|
|
|
- # NEO4J_USER = "neo4j"
|
|
|
|
- # NEO4J_PASSWORD = "mxlneo4j"
|
|
|
|
|
|
+class DevelopmentConfig(BaseConfig):
|
|
|
|
+ """Windows 开发环境配置"""
|
|
|
|
+ FLASK_ENV = 'development'
|
|
|
|
+ DEBUG = True
|
|
|
|
+ PORT = 5500
|
|
|
|
+
|
|
|
|
+ # 开发环境 MinIO 配置
|
|
|
|
+ MINIO_HOST = '192.168.67.138:9000'
|
|
|
|
+ MINIO_USER = 'citu-test'
|
|
|
|
+ MINIO_PASSWORD = 'citu-test'
|
|
|
|
+ MINIO_SECURE = False
|
|
|
|
+ BUCKET_NAME = 'dataops-bucket'
|
|
|
|
+ PREFIX = ''
|
|
|
|
+
|
|
|
|
+ # 开发环境 PostgreSQL 配置
|
|
|
|
+ SQLALCHEMY_DATABASE_URI = 'postgresql://postgres:postgres@192.168.67.138:5432/dataops'
|
|
|
|
+
|
|
|
|
+ # 开发环境 Neo4j 配置
|
|
NEO4J_URI = "bolt://192.168.67.138:7687"
|
|
NEO4J_URI = "bolt://192.168.67.138:7687"
|
|
NEO4J_HTTP_URI = "http://192.168.67.138:7474"
|
|
NEO4J_HTTP_URI = "http://192.168.67.138:7474"
|
|
NEO4J_USER = "neo4j"
|
|
NEO4J_USER = "neo4j"
|
|
NEO4J_PASSWORD = "password"
|
|
NEO4J_PASSWORD = "password"
|
|
- #NEO4J_PASSWORD = "Doudou312$"
|
|
|
|
- NEO4J_ENCRYPTED = False # 内网环境可关闭加密
|
|
|
|
-
|
|
|
|
- # Neo4j配置段
|
|
|
|
- """
|
|
|
|
- NEO4J_URI = "bolt://115.190.96.180:7687"
|
|
|
|
- NEO4J_HTTP_URI = "http://115.190.96.180:7474"
|
|
|
|
- NEO4J_USER = "neo4j"
|
|
|
|
- NEO4J_PASSWORD = "mxlneo4j"
|
|
|
|
- NEO4J_ENCRYPTED = False # 内网环境可关闭加密
|
|
|
|
- """
|
|
|
|
-
|
|
|
|
- # File paths
|
|
|
|
- if PLATFORM == 'windows':
|
|
|
|
- FILE_PATH = os.environ.get('FILE_PATH') or 'C:/temp/'
|
|
|
|
- elif PLATFORM == 'linux':
|
|
|
|
- FILE_PATH = os.environ.get('FILE_PATH') or '/tmp/'
|
|
|
|
|
|
|
|
|
|
+ # 开发环境文件路径配置
|
|
|
|
+ UPLOAD_BASE_PATH = 'C:\\tmp\\upload'
|
|
|
|
+ ARCHIVE_BASE_PATH = 'C:\\tmp\\archive'
|
|
|
|
|
|
- # 数据资源,Windows 和 Linux 的文件上传和归档根路径配置
|
|
|
|
- # 例如,当excle文件完成加载后,会被自动移动到归档路径。
|
|
|
|
- if PLATFORM == 'windows':
|
|
|
|
- UPLOAD_BASE_PATH = 'C:\\tmp\\upload'
|
|
|
|
- ARCHIVE_BASE_PATH = 'C:\\tmp\\archive'
|
|
|
|
- elif PLATFORM == 'linux':
|
|
|
|
- UPLOAD_BASE_PATH = '/data/upload'
|
|
|
|
- ARCHIVE_BASE_PATH = '/data/archive'
|
|
|
|
-
|
|
|
|
-class DevelopmentConfig(Config):
|
|
|
|
- """Development configuration"""
|
|
|
|
- DEBUG = True
|
|
|
|
- PORT = 5500 # 开发环境保持5500
|
|
|
|
-
|
|
|
|
-class ProductionConfig(Config):
|
|
|
|
- """Production configuration"""
|
|
|
|
|
|
+class ProductionConfig(BaseConfig):
|
|
|
|
+ """Linux 生产环境配置"""
|
|
|
|
+ FLASK_ENV = 'production'
|
|
DEBUG = False
|
|
DEBUG = False
|
|
- PORT = 80 # 生产环境使用标准HTTP端口
|
|
|
|
|
|
+ PORT = 80
|
|
|
|
+
|
|
|
|
+ # 生产环境 MinIO 配置
|
|
|
|
+ MINIO_HOST = os.environ.get('MINIO_HOST', 'minio.citupro.com')
|
|
|
|
+ MINIO_USER = os.environ.get('MINIO_USER', 'default-user')
|
|
|
|
+ MINIO_PASSWORD = os.environ.get('MINIO_PASSWORD', 'default-password')
|
|
|
|
+ MINIO_SECURE = True
|
|
|
|
+ BUCKET_NAME = 'dataops-bucket'
|
|
|
|
+ PREFIX = ''
|
|
|
|
+
|
|
|
|
+ # 生产环境 PostgreSQL 配置
|
|
|
|
+ SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL', 'postgresql://postgres:citupgdba@192.168.3.143:5432/dataops')
|
|
|
|
+
|
|
|
|
+ # 生产环境 Neo4j 配置
|
|
|
|
+ NEO4J_URI = os.environ.get('NEO4J_URI', "bolt://192.168.3.143:7687")
|
|
|
|
+ NEO4J_HTTP_URI = os.environ.get('NEO4J_HTTP_URI', "http://192.168.3.143:7474")
|
|
|
|
+ NEO4J_USER = os.environ.get('NEO4J_USER', "neo4j")
|
|
|
|
+ NEO4J_PASSWORD = os.environ.get('NEO4J_PASSWORD', "mxlneo4j")
|
|
|
|
+
|
|
|
|
+ # 生产环境文件路径配置
|
|
|
|
+ UPLOAD_BASE_PATH = '/data/upload'
|
|
|
|
+ ARCHIVE_BASE_PATH = '/data/archive'
|
|
|
|
|
|
-# Configuration dictionary
|
|
|
|
|
|
+# 配置字典
|
|
config = {
|
|
config = {
|
|
'development': DevelopmentConfig,
|
|
'development': DevelopmentConfig,
|
|
'production': ProductionConfig,
|
|
'production': ProductionConfig,
|
|
'default': DevelopmentConfig
|
|
'default': DevelopmentConfig
|
|
-}
|
|
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+# 获取当前环境
|
|
|
|
+current_env = get_environment()
|