Merge branch 'develop' of https://gitee.com/fusenpack/fusenapi into feature/auth
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
Name: upload
|
||||
Host: localhost
|
||||
Port: 9912
|
||||
<<<<<<< HEAD
|
||||
ReplicaId: 70
|
||||
=======
|
||||
Timeout: 15000 #服务超时时间
|
||||
>>>>>>> ac1800bb26ce44fba8be8271c7be2b8403c7d7f5
|
||||
SourceMysql: "fusentest:XErSYmLELKMnf3Dh@tcp(110.41.19.98:3306)/fusentest"
|
||||
Env: "test"
|
||||
Auth:
|
||||
@@ -16,5 +20,5 @@ AWS:
|
||||
Token:
|
||||
BLMService:
|
||||
ImageProcess:
|
||||
#Url: "http://192.168.1.7:45678/FeatureExtraction"
|
||||
# Url: "http://192.168.1.7:8999/FeatureExtraction"
|
||||
Url: "http://18.119.109.254:8999/FeatureExtraction"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package logic
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"fusenapi/utils/auth"
|
||||
"fusenapi/utils/basic"
|
||||
"fusenapi/utils/file"
|
||||
@@ -44,28 +45,25 @@ func NewUploadFileBackendLogic(r *http.Request, svcCtx *svc.ServiceContext) *Upl
|
||||
func (l *UploadFileBackendLogic) UploadFileBackend(req *types.UploadFileBackendReq, userinfo *auth.UserInfo) (resp *basic.Response) {
|
||||
// 返回值必须调用Set重新返回, resp可以空指针调用 resp.SetStatus(basic.CodeOK, data)
|
||||
// userinfo 传入值时, 一定不为null
|
||||
if userinfo.IsOnlooker() {
|
||||
// 如果是,返回未授权的错误码
|
||||
return resp.SetStatus(basic.CodeUnAuth)
|
||||
}
|
||||
|
||||
// 定义用户ID和S3键名格式
|
||||
var userId int64
|
||||
var guestId int64
|
||||
var userId int64 = 0
|
||||
var guestId int64 = 0
|
||||
|
||||
// 检查用户是否是游客
|
||||
if userinfo.IsGuest() {
|
||||
// 如果是,使用游客ID和游客键名格式
|
||||
guestId = userinfo.GuestId
|
||||
} else {
|
||||
// 否则,使用用户ID和用户键名格式
|
||||
userId = userinfo.UserId
|
||||
if userinfo != nil {
|
||||
if userinfo.IsGuest() {
|
||||
// 如果是,使用游客ID和游客键名格式
|
||||
guestId = userinfo.GuestId
|
||||
} else {
|
||||
// 否则,使用用户ID和用户键名格式
|
||||
userId = userinfo.UserId
|
||||
}
|
||||
}
|
||||
|
||||
//设置内存大小
|
||||
l.r.ParseMultipartForm(32 << 20)
|
||||
|
||||
fileObject, _, err := l.r.FormFile("file")
|
||||
fmt.Printf("%#v", fileObject)
|
||||
if err != nil {
|
||||
logx.Error(err)
|
||||
return resp.SetStatus(basic.CodeFileUploadErr, "file upload err,no files")
|
||||
|
||||
@@ -2,6 +2,7 @@ package logic
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fusenapi/model/gmodel"
|
||||
"fusenapi/utils/auth"
|
||||
"fusenapi/utils/basic"
|
||||
@@ -69,11 +70,29 @@ func (l *UploadLogoLogic) UploadLogo(req *types.UploadLogoReq, userinfo *auth.Us
|
||||
//设置内存大小
|
||||
l.r.ParseMultipartForm(32 << 20)
|
||||
|
||||
fileObject, _, err := l.r.FormFile("file")
|
||||
fileObject, fileHeader, err := l.r.FormFile("file")
|
||||
if err != nil {
|
||||
logx.Error(err)
|
||||
return resp.SetStatus(basic.CodeFileUploadErr, "file upload err,no files")
|
||||
}
|
||||
defer fileObject.Close()
|
||||
|
||||
// 获取文件的MIME类型
|
||||
fileType := fileHeader.Header.Get("Content-Type")
|
||||
var imageTypes = make(map[string]struct{}, 7)
|
||||
imageTypes["image/jpg"] = struct{}{}
|
||||
imageTypes["image/jpeg"] = struct{}{}
|
||||
imageTypes["image/png"] = struct{}{}
|
||||
imageTypes["image/gif"] = struct{}{}
|
||||
imageTypes["image/bmp"] = struct{}{}
|
||||
imageTypes["image/tiff"] = struct{}{}
|
||||
imageTypes["image/webp"] = struct{}{}
|
||||
imageTypes["image/svg+xml"] = struct{}{}
|
||||
// 判断文件类型是否为图片
|
||||
_, ok := imageTypes[fileType]
|
||||
if !ok {
|
||||
return resp.SetStatus(basic.CodeFileUploadErr, "file upload err,file is not image")
|
||||
}
|
||||
|
||||
// 读取数据流
|
||||
ioData, err := io.ReadAll(fileObject)
|
||||
@@ -143,10 +162,30 @@ func (l *UploadLogoLogic) UploadLogo(req *types.UploadLogoReq, userinfo *auth.Us
|
||||
logx.Error(err)
|
||||
return resp.SetStatus(basic.CodeFileUploadLogoErr, "service fail")
|
||||
}
|
||||
resultStr = string(b)
|
||||
|
||||
if resultStr == "Internal Server Error" {
|
||||
return resp.SetStatus(basic.CodeFileUploadLogoErr, resultStr)
|
||||
if string(b) == "Internal Server Error" {
|
||||
err = errors.New("BLMService fail Internal Server Error")
|
||||
logx.Error(err)
|
||||
return resp.SetStatus(basic.CodeFileUploadLogoErr, "service fail")
|
||||
} else {
|
||||
var resData map[string]interface{}
|
||||
err = json.Unmarshal(b, &resData)
|
||||
if err != nil || resData == nil {
|
||||
logx.Error(err)
|
||||
return resp.SetStatus(basic.CodeFileUploadLogoErr, "service fail")
|
||||
}
|
||||
|
||||
if resData != nil {
|
||||
if resData["code"].(string) == "200" {
|
||||
resultStr = resData["data"].(string)
|
||||
} else {
|
||||
logx.Error(err)
|
||||
return resp.SetStatus(basic.CodeFileUploadLogoErrType, "service fail")
|
||||
}
|
||||
} else {
|
||||
logx.Error(err)
|
||||
return resp.SetStatus(basic.CodeFileUploadLogoErr, "service fail")
|
||||
}
|
||||
}
|
||||
|
||||
var module = "logo"
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"fusenapi/server/upload/internal/config"
|
||||
"fusenapi/server/upload/internal/handler"
|
||||
@@ -22,7 +21,6 @@ func main() {
|
||||
|
||||
var c config.Config
|
||||
conf.MustLoad(*configFile, &c)
|
||||
c.Timeout = int64(time.Second * 15)
|
||||
|
||||
server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(auth.FsCors, func(w http.ResponseWriter) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user