mirror of
https://github.com/yangjian102621/geekai.git
synced 2025-11-09 10:43:44 +08:00
feat: gpt-4-gizmo-g-* model is supported
This commit is contained in:
@@ -44,16 +44,16 @@ func NewAliYunOss(appConfig *types.AppConfig) (*AliYunOss, error) {
|
||||
|
||||
}
|
||||
|
||||
func (s AliYunOss) PutFile(ctx *gin.Context, name string) (string, error) {
|
||||
func (s AliYunOss) PutFile(ctx *gin.Context, name string) (File, error) {
|
||||
// 解析表单
|
||||
file, err := ctx.FormFile(name)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return File{}, err
|
||||
}
|
||||
// 打开上传文件
|
||||
src, err := file.Open()
|
||||
if err != nil {
|
||||
return "", err
|
||||
return File{}, err
|
||||
}
|
||||
defer src.Close()
|
||||
|
||||
@@ -62,10 +62,14 @@ func (s AliYunOss) PutFile(ctx *gin.Context, name string) (string, error) {
|
||||
// 上传文件
|
||||
err = s.bucket.PutObject(objectKey, src)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return File{}, err
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s/%s", s.config.Domain, objectKey), nil
|
||||
return File{
|
||||
URL: fmt.Sprintf("%s/%s", s.config.Domain, objectKey),
|
||||
Ext: fileExt,
|
||||
Size: file.Size,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s AliYunOss) PutImg(imageURL string, useProxy bool) (string, error) {
|
||||
|
||||
@@ -23,23 +23,28 @@ func NewLocalStorage(config *types.AppConfig) LocalStorage {
|
||||
}
|
||||
}
|
||||
|
||||
func (s LocalStorage) PutFile(ctx *gin.Context, name string) (string, error) {
|
||||
func (s LocalStorage) PutFile(ctx *gin.Context, name string) (File, error) {
|
||||
file, err := ctx.FormFile(name)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("error with get form: %v", err)
|
||||
return File{}, fmt.Errorf("error with get form: %v", err)
|
||||
}
|
||||
|
||||
filePath, err := utils.GenUploadPath(s.config.BasePath, file.Filename)
|
||||
path, err := utils.GenUploadPath(s.config.BasePath, file.Filename)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("error with generate filename: %s", err.Error())
|
||||
return File{}, fmt.Errorf("error with generate filename: %s", err.Error())
|
||||
}
|
||||
// 将文件保存到指定路径
|
||||
err = ctx.SaveUploadedFile(file, filePath)
|
||||
err = ctx.SaveUploadedFile(file, path)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("error with save upload file: %s", err.Error())
|
||||
return File{}, fmt.Errorf("error with save upload file: %s", err.Error())
|
||||
}
|
||||
|
||||
return utils.GenUploadUrl(s.config.BasePath, s.config.BaseURL, filePath), nil
|
||||
ext := filepath.Ext(file.Filename)
|
||||
return File{
|
||||
URL: utils.GenUploadUrl(s.config.BasePath, s.config.BaseURL, path),
|
||||
Ext: ext,
|
||||
Size: file.Size,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s LocalStorage) PutImg(imageURL string, useProxy bool) (string, error) {
|
||||
|
||||
@@ -65,15 +65,15 @@ func (s MiniOss) PutImg(imageURL string, useProxy bool) (string, error) {
|
||||
return fmt.Sprintf("%s/%s/%s", s.config.Domain, s.config.Bucket, info.Key), nil
|
||||
}
|
||||
|
||||
func (s MiniOss) PutFile(ctx *gin.Context, name string) (string, error) {
|
||||
func (s MiniOss) PutFile(ctx *gin.Context, name string) (File, error) {
|
||||
file, err := ctx.FormFile(name)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("error with get form: %v", err)
|
||||
return File{}, fmt.Errorf("error with get form: %v", err)
|
||||
}
|
||||
// Open the uploaded file
|
||||
fileReader, err := file.Open()
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("error opening file: %v", err)
|
||||
return File{}, fmt.Errorf("error opening file: %v", err)
|
||||
}
|
||||
defer fileReader.Close()
|
||||
|
||||
@@ -83,10 +83,14 @@ func (s MiniOss) PutFile(ctx *gin.Context, name string) (string, error) {
|
||||
ContentType: file.Header.Get("Content-Type"),
|
||||
})
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("error uploading to MinIO: %v", err)
|
||||
return File{}, fmt.Errorf("error uploading to MinIO: %v", err)
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s/%s/%s", s.config.Domain, s.config.Bucket, info.Key), nil
|
||||
return File{
|
||||
URL: fmt.Sprintf("%s/%s/%s", s.config.Domain, s.config.Bucket, info.Key),
|
||||
Ext: fileExt,
|
||||
Size: file.Size,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s MiniOss) Delete(fileURL string) error {
|
||||
|
||||
@@ -50,16 +50,16 @@ func NewQiNiuOss(appConfig *types.AppConfig) QinNiuOss {
|
||||
}
|
||||
}
|
||||
|
||||
func (s QinNiuOss) PutFile(ctx *gin.Context, name string) (string, error) {
|
||||
func (s QinNiuOss) PutFile(ctx *gin.Context, name string) (File, error) {
|
||||
// 解析表单
|
||||
file, err := ctx.FormFile(name)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return File{}, err
|
||||
}
|
||||
// 打开上传文件
|
||||
src, err := file.Open()
|
||||
if err != nil {
|
||||
return "", err
|
||||
return File{}, err
|
||||
}
|
||||
defer src.Close()
|
||||
|
||||
@@ -70,10 +70,15 @@ func (s QinNiuOss) PutFile(ctx *gin.Context, name string) (string, error) {
|
||||
extra := storage.PutExtra{}
|
||||
err = s.uploader.Put(ctx, &ret, s.putPolicy.UploadToken(s.mac), key, src, file.Size, &extra)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return File{}, err
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s/%s", s.config.Domain, ret.Key), nil
|
||||
return File{
|
||||
URL: fmt.Sprintf("%s/%s", s.config.Domain, ret.Key),
|
||||
Ext: fileExt,
|
||||
Size: file.Size,
|
||||
}, nil
|
||||
|
||||
}
|
||||
|
||||
func (s QinNiuOss) PutImg(imageURL string, useProxy bool) (string, error) {
|
||||
|
||||
@@ -2,8 +2,13 @@ package oss
|
||||
|
||||
import "github.com/gin-gonic/gin"
|
||||
|
||||
type File struct {
|
||||
Size int64
|
||||
URL string
|
||||
Ext string
|
||||
}
|
||||
type Uploader interface {
|
||||
PutFile(ctx *gin.Context, name string) (string, error)
|
||||
PutFile(ctx *gin.Context, name string) (File, error)
|
||||
PutImg(imageURL string, useProxy bool) (string, error)
|
||||
Delete(fileURL string) error
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user