config.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. from pathlib import Path
  2. from typing import Dict, List
  3. from enum import Enum
  4. import json
  5. class Settings:
  6. BASE_PATH = Path(__file__).parent.parent.parent.absolute()
  7. # 用户系统重要的KEY
  8. ADMIN_GRANT_KEY = "CardScoreAdminKey2026_aaabbbccc"
  9. TOKEN_SECRET_KEY = "CardScoreDataServerTokenSecret2026"
  10. # --- MinIO 配置 ---
  11. MINIO_ENDPOINT = "192.168.77.249:9000"
  12. MINIO_ACCESS_KEY = "pZEwCGnpNN05KPnmC2Yh"
  13. MINIO_SECRET_KEY = "KfJRuWiv9pVxhIMcFqbkv8hZT9SnNTZ6LPx592D4" # 替换为你的 Secret Key
  14. MINIO_SECURE = False # 是否使用 https
  15. MINIO_BUCKET = "grading"
  16. MINIO_BASE_PREFIX = "score_server_data"
  17. # DATA_HOST_URL 现在直接指向 MinIO 的前缀路径
  18. # (注意: 需要在 MinIO 后台将 grading 存储桶的访问权限配置为 Public 或开启特定读策略)
  19. DATA_HOST_URL = f"http://{MINIO_ENDPOINT}/{MINIO_BUCKET}/{MINIO_BASE_PREFIX}"
  20. CONFIG_PATH = BASE_PATH / 'Config.json'
  21. API_PREFIX: str = "/api" # 通用前缀
  22. SCORE_CONFIG_PATH = BASE_PATH / "app/core/scoring_config.json"
  23. # 分数计算接口url
  24. SCORE_UPDATE_SERVER_URL = "http://127.0.0.1:7754"
  25. SCORE_RECALCULATE_ENDPOINT = f"{SCORE_UPDATE_SERVER_URL}/api/card_score/score_recalculate"
  26. # 分数计算配置接口
  27. SCORE_SERVER_CONFIG_URL = f"{SCORE_UPDATE_SERVER_URL}/api/config/scoring_config"
  28. # 评级后台接口url
  29. RATING_SERVER_URL = "http://192.168.77.89:8090"
  30. RATING_REPORT_SAVE_API = f"{RATING_SERVER_URL}/rating/card/ratingReport/save"
  31. # --- 数据库配置 ---
  32. DB_NAME = 'card_score_gray_database'
  33. DB_CARD_TABLE_NAME = 'cards'
  34. DB_IMAGE_TABLE_NAME = 'card_images'
  35. DB_GRAY_IMAGE_TABLE_NAME = 'card_gray_images' # 灰度图表名
  36. DB_USER_TABLE_NAME = 'users'
  37. DB_USER_CARD_TABLE_NAME = 'user_card_bindings'
  38. RATING_REPORT_HISTORY_TABLE_NAME = "rating_report_history"
  39. DATABASE_CONFIG: Dict[str, str] = {
  40. 'user': 'root',
  41. 'password': '123456',
  42. 'host': '127.0.0.1',
  43. }
  44. # 连接到指定数据库的配置
  45. DATABASE_CONFIG_WITH_DB: Dict[str, str] = {
  46. **DATABASE_CONFIG,
  47. 'database': DB_NAME
  48. }
  49. def set_config(self):
  50. with open(self.CONFIG_PATH, 'r') as f:
  51. config_json = json.load(f)
  52. self.DATABASE_CONFIG = config_json["mysql_config"]
  53. self.DB_NAME = config_json["database_name"]
  54. def get_full_url(self, path: str) -> str:
  55. """将相对路径转换为可以直接打开的 MinIO 绝对 URL"""
  56. if not path:
  57. return path
  58. if str(path).startswith("http"):
  59. return path
  60. # 移除开头的斜杠防止双斜杠 (如: /Data/xxx -> Data/xxx)
  61. clean_path = str(path).lstrip("/\\")
  62. return f"{self.DATA_HOST_URL}/{clean_path}"
  63. settings = Settings()