wireguard-dashboard/utils/file_system.go
2024-03-06 16:24:49 +08:00

42 lines
834 B
Go

package utils
import (
"fmt"
"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.WriteFile(filePath, file, os.FileMode(0777)); err != nil {
return "", err
}
return filePath, nil
}
return "", nil
}