package utils import ( "fmt" "gitee.ltd/lxh/logger/log" "os" "time" "wireguard-dashboard/client" "wireguard-dashboard/config" ) type fileSystem struct{} func FileSystem() fileSystem { return fileSystem{} } // UploadFile // @description: 上传文件 // @receiver fileSystem // @param file // @return filePath // @return err func (fileSystem) UploadFile(file []byte, suffix string) (filePath string, err error) { switch config.Config.File.Type { case "oss": ossObj, err := client.OSS.Put(config.Config.File.Path, file, suffix) if err != nil { return "", err } return ossObj.LongPath, nil case "local": filePath = fmt.Sprintf("%v/%d-avatar%s", config.Config.File.Path, time.Now().Unix(), suffix) // 创建目录 if err = os.MkdirAll(filePath, os.FileMode(0777)); err != nil { log.Errorf("本地存储目录创建失败: %v", err) return "", err } if err = os.WriteFile(filePath, file, os.FileMode(0777)); err != nil { return "", err } return filePath, nil } return "", nil }