feat(uploader): 添加文件上传配置和临时文件处理功能
构建上传工具 / build (push) Successful in 1m10s

- 新增 ClearFilesNoPrompt 配置项用于控制是否提示清空文件
- 实现临时文件目录(tmp)管理,优先处理未上传完的文件
- 添加文件复制功能,支持快速零拷贝技术
- 实现文件清空提示机制,支持用户确认操作
- 优化文件上传流程,添加进度跟踪和状态更新
- 过滤掉大小为0的文件,避免无效上传
- 修改数据结构名称提升代码可读性
This commit is contained in:
2026-05-01 21:01:01 +08:00
parent 3f6e999783
commit 8ffa0531d6
2 changed files with 158 additions and 52 deletions
+22 -18
View File
@@ -9,35 +9,38 @@ import (
)
type Config struct {
Url string `json:"url" mapstructure:"url"`
Token string `json:"token" mapstructure:"token"`
ThreadCount int `json:"thread_count" mapstructure:"thread-count"`
HandleFileCount int `json:"handle_file_count" mapstructure:"handle-file-count"`
IsRunOnStart bool `json:"is_run_on_start" mapstructure:"is-run-on-start"`
CheckDir string `json:"check_dir" mapstructure:"check-dir"`
Url string `json:"url" mapstructure:"url"`
Token string `json:"token" mapstructure:"token"`
ThreadCount int `json:"thread_count" mapstructure:"thread-count"`
HandleFileCount int `json:"handle_file_count" mapstructure:"handle-file-count"`
IsRunOnStart bool `json:"is_run_on_start" mapstructure:"is-run-on-start"`
CheckDir string `json:"check_dir" mapstructure:"check-dir"`
ClearFilesNoPrompt bool `json:"clear_files_no_prompt" mapstructure:"clear-files-no-prompt"`
}
var APPConfig Config
var configMu sync.Mutex
const (
Url = "url"
Token = "token"
ThreadCount = "thread-count"
HandleFileCount = "handle-file-count"
IsRunOnStart = "is-run-on-start"
CheckDir = "check-dir"
Url = "url"
Token = "token"
ThreadCount = "thread-count"
HandleFileCount = "handle-file-count"
IsRunOnStart = "is-run-on-start"
CheckDir = "check-dir"
ClearFilesNoPrompt = "clear-files-no-prompt"
)
func InitConfig() {
// 设置默认配置
defaultConfig := Config{
Url: "http://127.0.0.1:8080",
Token: "",
ThreadCount: 10,
HandleFileCount: 25,
IsRunOnStart: false,
CheckDir: "",
Url: "http://127.0.0.1:8080",
Token: "",
ThreadCount: 10,
HandleFileCount: 25,
IsRunOnStart: false,
CheckDir: "",
ClearFilesNoPrompt: false,
}
viper.SetDefault(Url, defaultConfig.Url)
viper.SetDefault(Token, defaultConfig.Token)
@@ -45,6 +48,7 @@ func InitConfig() {
viper.SetDefault(HandleFileCount, defaultConfig.HandleFileCount)
viper.SetDefault(IsRunOnStart, defaultConfig.IsRunOnStart)
viper.SetDefault(CheckDir, defaultConfig.CheckDir)
viper.SetDefault(ClearFilesNoPrompt, defaultConfig.ClearFilesNoPrompt)
//设置配置文件名和路径 ./config.toml
viper.AddConfigPath(".")