--- inclusion: fileMatch fileMatchPattern: "**/.env*,**/scripts/**,**/export/**,**/EXPORT-PATHS*" name: export-paths-full description: 输出路径完整规范(目录结构、环境变量映射、检查清单)。读到 .env / scripts / export 文件时自动加载。 --- # 输出路径完整规范 ## 目录结构与环境变量 ``` export/ ├── ETL-Connectors/feiqiu/ │ ├── JSON/ — EXPORT_ROOT / FETCH_ROOT │ ├── LOGS/ — LOG_ROOT │ └── REPORTS/ — ETL_REPORT_ROOT ├── SYSTEM/ │ ├── LOGS/ — SYSTEM_LOG_ROOT │ ├── REPORTS/ │ │ ├── dataflow_analysis/ — SYSTEM_ANALYZE_ROOT │ │ ├── field_audit/ — FIELD_AUDIT_ROOT │ │ └── full_dataflow_doc/ — FULL_DATAFLOW_DOC_ROOT │ └── CACHE/ │ └── api_samples/ — API_SAMPLE_CACHE_ROOT └── BACKEND/ └── LOGS/ — BACKEND_LOG_ROOT ``` ## 路径读取方式详细 - `scripts/ops/` 脚本:通过 `_env_paths.get_output_path("变量名")` 读取(内部自动 `load_dotenv`) - ETL 核心模块:通过 `env_parser.py` → `AppConfig` 的 `io.*` 配置节读取 - ETL 独立脚本:通过 `os.environ.get("ETL_REPORT_ROOT")` 读取,缺失时抛错 - 后端:通过 `os.environ.get("BACKEND_LOG_ROOT")` 读取 ## 新增输出场景的检查清单 当任何操作需要写入文件时,按以下顺序确认: 1. 该输出是否已有对应的环境变量?→ 直接使用 2. 是否属于现有目录分类(ETL/SYSTEM/BACKEND)?→ 使用对应父目录变量 + 子路径 3. 都不匹配?→ 在 `export/` 下新建合理子目录,新增环境变量,更新 `.env` / `.env.template` / `EXPORT-PATHS.md` ## 共享工具 - `scripts/ops/_env_paths.py`:提供 `get_output_path(env_var)` 函数,自动 `load_dotenv` + 读取 + 建目录 + 缺失报错 ## 参考文档 - 完整目录说明:`docs/deployment/EXPORT-PATHS.md` - 环境变量定义:根 `.env` 的"统一输出路径配置"节