60 lines
3.3 KiB
Markdown
60 lines
3.3 KiB
Markdown
## 07 - 全局配置: 路径配置
|
||
|
||
### 1. 功能概述
|
||
|
||
- **功能名称**:全局路径配置
|
||
- **核心逻辑**:通过配置一个**全局根目录 (WorkDir)**,自动派生出音频处理流水线(汇聚 -> 转换 -> 去重 -> 繁简转换 -> 整理 -> 入库)中各个阶段所需的标准子目录。
|
||
- **设计目标**:一键配置,全流程自动化运行,减少用户在每个环节手动输入路径的操作。
|
||
|
||
### 2. 全局根路径设计
|
||
|
||
用户只需在设置界面指定一个 `根路径 (BasePath)`,系统将自动在该路径下维护以下结构:
|
||
|
||
| 目录名称 | 变量名示例 | 物理路径 (假设根为 `/MusicWork`) | 用途说明 |
|
||
| :--- | :--- | :--- | :--- |
|
||
| **Input** | `SRC_ACC_DIR` | `/MusicWork/Input` | 默认存放待处理的原始杂乱音频 |
|
||
| **Staging_Aggregated** | `DST_ACC_DIR` | `/MusicWork/Staging_Aggregated` | 扁平化汇聚后的核心工作区 |
|
||
| **Staging_Format_Issues**| `DST_CONV_ISSUE` | `/MusicWork/Staging_Format_Issues` | 存放转换失败或格式不达标的文件 |
|
||
| **Staging_Duplicates** | `DST_DEDUP_TRASH`| `/MusicWork/Staging_Duplicates` | 存放被识别为重复的文件 |
|
||
| **Staging_T2S_Output** | `DST_ZH_CONV` | `/MusicWork/Staging_T2S_Output` | 存放完成繁简转换后的文件 |
|
||
| **Staging_Organized** | `DST_ORG_DIR` | `/MusicWork/Staging_Organized` | 存放最终按 A-Z 结构整理好的文件 |
|
||
| **Library_Final** | `DST_LIB_FINAL` | `/MusicWork/Library_Final` | 最终入库合并的目标主库 |
|
||
|
||
### 3. 各模块路径映射关系 (Pipeline)
|
||
|
||
根据流水线顺序,各模块的路径使用逻辑如下:
|
||
|
||
1. **音频文件汇聚 (01)**
|
||
- **源目录**:`${ROOT}/Input` (用户可自定义修改,默认从此开始)
|
||
- **目标目录**:`${ROOT}/Staging_Aggregated` (固定)
|
||
2. **音频格式智能处理 (02)**
|
||
- **源目录**:`${ROOT}/Staging_Aggregated` (固定,使用汇聚后的结果)
|
||
- **转换后异常目录**:`${ROOT}/Staging_Format_Issues` (固定)
|
||
3. **音乐去重 (03)**
|
||
- **源目录**:`${ROOT}/Staging_Aggregated` (固定)
|
||
- **重复文件存放目录**:`${ROOT}/Staging_Duplicates` (固定)
|
||
4. **元数据繁简转换 (04)**
|
||
- **源目录**:`${ROOT}/Staging_Aggregated` (固定)
|
||
- **转换后输出目录**:`${ROOT}/Staging_T2S_Output` (固定)
|
||
5. **音乐整理 (05)**
|
||
- **源目录**:`${ROOT}/Staging_Aggregated` (或根据流程选择输出目录)
|
||
- **整理后固定目录**:`${ROOT}/Staging_Organized` (固定)
|
||
6. **整理入库 (06)**
|
||
- **源目录**:`${ROOT}/Staging_Organized` (固定,取自音乐整理的输出)
|
||
- **主库固定目录**:`${ROOT}/Library_Final` (固定)
|
||
|
||
### 4. 前端交互设计
|
||
|
||
- **配置入口**:全局设置 (Settings) 页面。
|
||
- **交互流程**:
|
||
1. 用户点击“选择根目录”。
|
||
2. 系统展示派生出的子目录预览列表。
|
||
3. 点击“保存”,系统自动创建尚未存在的子目录。
|
||
4. 各功能页面的路径输入框默认填充上述对应的自动路径。
|
||
|
||
### 5. 后端实现建议
|
||
|
||
- **ConfigService**: 负责保存 `BasePath` 并提供获取各子路径的方法(如 `getAggregatedDir()`)。
|
||
- **初始化逻辑**: 在保存 `BasePath` 时,调用 `Files.createDirectories()` 确保整个工作流目录结构就绪。
|
||
- **路径解析**: 使用 `Paths.get(basePath, subDirName)` 确保跨平台路径兼容。
|