42 lines
834 B
Go
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
|
||
|
}
|