From 6dd6172be9cff0c5f8ee74192423cbfdabc3ed24 Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Tue, 20 Aug 2024 15:27:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=86=E8=8E=B7=E5=8F=96os?= =?UTF-8?q?s=E7=AD=BE=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/controller/Public.go | 26 ++++++++++++++++++++++++++ api/requests/Public.go | 6 ++++++ api/router/router.go | 7 ++++++- api/service/Public.go | 16 ++++++++++++++++ 4 files changed, 54 insertions(+), 1 deletion(-) diff --git a/api/controller/Public.go b/api/controller/Public.go index 9a58bf3..7b38ac1 100644 --- a/api/controller/Public.go +++ b/api/controller/Public.go @@ -63,3 +63,29 @@ func (b *Public) GetIndex(c *gin.Context) { responses.OkWithData(g, c) } + +// GetOssSign 获取oss签名 +func (b *Public) GetOssSign(c *gin.Context) { + publicRequest := requests.PublicRequest{} + req := publicRequest.GetOssSign + if err := c.ShouldBind(&req); err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + // 参数验证 + if err := global.Validate.Struct(req); err != nil { + responses.FailWithMessage(utils.Translate(err), c) + return + } + + // 获取oss签名 + publicService := service.PublicService{} + ossSign, err := publicService.GetOssSign(req.Scene) + if err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + responses.OkWithData(ossSign, c) +} diff --git a/api/requests/Public.go b/api/requests/Public.go index 05a32b6..5a4518f 100644 --- a/api/requests/Public.go +++ b/api/requests/Public.go @@ -2,6 +2,7 @@ package requests type PublicRequest struct { GetPhoneCode // 获取手机验证码 + GetOssSign // 获取oss签名 } // GetPhoneCode 获取手机验证码 @@ -9,3 +10,8 @@ type GetPhoneCode struct { Phone string `json:"phone" form:"phone" label:"手机号" validate:"required,Mobile"` Scene int `json:"scene" form:"scene" label:"场景值" validate:"required,number,min=1,max=1"` } + +// GetOssSign 获取oss签名 +type GetOssSign struct { + Scene int `json:"scene" form:"scene" validate:"required,oneof=1 2 3 4" label:"场景"` // (1:头像 2:证书 3:名片) +} diff --git a/api/router/router.go b/api/router/router.go index 3850060..0dc2117 100644 --- a/api/router/router.go +++ b/api/router/router.go @@ -127,7 +127,12 @@ func publicRouter(r *gin.Engine, api controller.Api) { // adminRouter 公共路由-验证权限 func adminRouter(r *gin.Engine, api controller.Api) { - + // 签名 + signGroup := r.Group("/sign") + { + // 获取oss签名 + signGroup.GET("/oss", api.Public.GetOssSign) + } } // basicRouter 基础数据-验证权限 diff --git a/api/service/Public.go b/api/service/Public.go index d529e36..ad680ab 100644 --- a/api/service/Public.go +++ b/api/service/Public.go @@ -131,3 +131,19 @@ func (r *PublicService) GetUserIP(h *http.Request) string { } return h.RemoteAddr } + +// GetOssSign 获取oss签名 +func (a *PublicService) GetOssSign(scene int) (*aliyun.GetOssSignResponse, error) { + var dir string + if scene == 1 { + dir = dir + "user/avatar/" + } + + if dir == "" { + return nil, errors.New("获取签名失败") + } + + // 生成签名 + ossSign, _ := aliyun.GetOssSign(dir) + return ossSign, nil +}