移除废案只修复请求域名排行显示
This commit is contained in:
117
.trae/documents/实现系统启动时自动创建文件和文件夹.md
Normal file
117
.trae/documents/实现系统启动时自动创建文件和文件夹.md
Normal file
@@ -0,0 +1,117 @@
|
||||
# 实现系统启动时自动创建文件和文件夹
|
||||
|
||||
## 问题分析
|
||||
|
||||
当前系统启动时,如果配置文件中指定的文件或文件夹不存在,会导致报错,影响系统正常启动。需要实现自动创建功能,确保系统能够顺利启动。
|
||||
|
||||
## 解决方案
|
||||
|
||||
### 1. 自动创建配置文件
|
||||
|
||||
* 在main.go中添加检查配置文件是否存在的逻辑
|
||||
|
||||
* 如果配置文件不存在,创建默认的config.json文件
|
||||
|
||||
### 2. 自动创建数据文件夹
|
||||
|
||||
* 根据配置文件中的路径,创建所需的文件夹:
|
||||
* 数据文件夹(默认:./data)
|
||||
* 远程规则缓存文件夹(默认:./data/remote_rules)
|
||||
* 日志文件夹(根据配置文件中的Log.File路径)
|
||||
|
||||
### 3. 自动创建文件
|
||||
|
||||
* 根据配置文件中的路径,创建所需的文件:
|
||||
* 本地规则文件(默认:data/rules.txt)
|
||||
* Hosts文件(默认:data/hosts.txt)
|
||||
* 统计数据文件(默认:./data/stats.json)
|
||||
* Shield统计数据文件(默认:./data/shield_stats.json)
|
||||
|
||||
## 实现步骤
|
||||
|
||||
### 1. 修改main.go文件
|
||||
|
||||
* 在命令行参数解析后,添加检查配置文件是否存在的逻辑
|
||||
|
||||
* 如果配置文件不存在,创建默认的config.json文件
|
||||
|
||||
* 调用LoadConfig加载配置
|
||||
|
||||
### 2. 添加createDefaultConfig函数
|
||||
|
||||
* 实现创建默认配置文件的功能
|
||||
|
||||
* 写入默认的配置内容到config.json
|
||||
|
||||
### 3. 添加createRequiredFiles函数
|
||||
|
||||
* 实现创建所需文件和文件夹的功能
|
||||
|
||||
* 根据配置文件中的路径,创建所需的文件夹
|
||||
|
||||
* 根据配置文件中的路径,创建所需的文件
|
||||
|
||||
### 4. 在main.go中调用createRequiredFiles函数
|
||||
|
||||
* 在配置加载完成后,调用createRequiredFiles函数
|
||||
|
||||
* 确保在初始化屏蔽管理系统之前创建所需的文件和文件夹
|
||||
|
||||
## 预期效果
|
||||
|
||||
* 系统启动时,如果配置文件不存在,自动创建默认的config.json文件
|
||||
|
||||
* 自动创建所需的文件夹:data、data/remote_rules、logs等
|
||||
|
||||
* 自动创建所需的文件:rules.txt、hosts.txt、stats.json等
|
||||
|
||||
* 系统能够顺利启动,不会因为找不到文件而报错
|
||||
|
||||
## 技术要点
|
||||
|
||||
* 使用os.Stat函数检查文件或文件夹是否存在
|
||||
|
||||
* 使用os.MkdirAll函数创建文件夹(包括父文件夹)
|
||||
|
||||
* 使用os.Create函数创建文件
|
||||
|
||||
* 确保在初始化屏蔽管理系统之前创建所需的文件和文件夹
|
||||
|
||||
* 确保在初始化日志系统之前创建日志文件夹
|
||||
|
||||
## 实现时间
|
||||
|
||||
* 预计1-2小时完成所有修改和测试
|
||||
|
||||
## 风险评估
|
||||
|
||||
* 低风险:修改范围明确,不涉及核心功能
|
||||
|
||||
* 可回滚:所有修改均为添加新功能,可通过恢复文件轻松回滚
|
||||
|
||||
## 依赖关系
|
||||
|
||||
* 依赖os包的文件操作功能
|
||||
|
||||
* 依赖config包的配置结构
|
||||
|
||||
## 测试策略
|
||||
|
||||
* 手动测试删除配置文件、文件夹和文件,然后启动服务器,验证是否自动创建
|
||||
|
||||
* 验证创建的文件和文件夹是否符合配置文件中的路径
|
||||
|
||||
* 验证服务器能够顺利启动,没有报错
|
||||
|
||||
## 验收标准
|
||||
|
||||
* 系统启动时,如果配置文件不存在,自动创建默认的config.json文件
|
||||
|
||||
* 自动创建所需的文件夹:data、data/remote_rules、logs等
|
||||
|
||||
* 自动创建所需的文件:rules.txt、hosts.txt、stats.json等
|
||||
|
||||
* 系统能够顺利启动,不会因为找不到文件而报错
|
||||
|
||||
* 所有创建的文件和文件夹都符合配置文件中的路径
|
||||
|
||||
Reference in New Issue
Block a user