diff --git a/internal/api/msg.go b/internal/api/msg.go index 95e90a0da..322e365c7 100644 --- a/internal/api/msg.go +++ b/internal/api/msg.go @@ -233,7 +233,3 @@ func (m *Message) CheckMsgIsSendSuccess(c *gin.Context) { func (m *Message) GetUsersOnlineStatus(c *gin.Context) { a2r.Call(msg.MsgClient.GetSendMsgStatus, m.client, c) } - -func (m *Message) AccountCheck(c *gin.Context) { - a2r.Call(msg.MsgClient.GetSendMsgStatus, m.client, c) -} diff --git a/internal/api/route.go b/internal/api/route.go index 5cc7bb49b..435ece24f 100644 --- a/internal/api/route.go +++ b/internal/api/route.go @@ -122,7 +122,7 @@ func NewGinRouter(zk discoveryregistry.SvcDiscoveryRegistry, rdb redis.Universal thirdGroup.POST("/apply_put", t.ApplyPut) thirdGroup.POST("/get_put", t.GetPut) thirdGroup.POST("/confirm_put", t.ConfirmPut) - thirdGroup.GET("/get_url", t.GetURL) + thirdGroup.POST("/object", t.GetURL) thirdGroup.GET("/object", t.GetURL) } ////Message @@ -140,7 +140,6 @@ func NewGinRouter(zk discoveryregistry.SvcDiscoveryRegistry, rdb redis.Universal msgGroup.POST("/batch_send_msg", m.ManagementBatchSendMsg) msgGroup.POST("/check_msg_is_send_success", m.CheckMsgIsSendSuccess) msgGroup.POST("/get_users_online_status", m.GetUsersOnlineStatus) - msgGroup.POST("/account_check", m.AccountCheck) //msgGroup.POST("/set_message_reaction_extensions", msg.SetMessageReactionExtensions) //msgGroup.POST("/get_message_list_reaction_extensions", msg.GetMessageListReactionExtensions) //msgGroup.POST("/add_message_reaction_extensions", msg.AddMessageReactionExtensions) diff --git a/internal/api/third.go b/internal/api/third.go index dbff5b720..952c1614c 100644 --- a/internal/api/third.go +++ b/internal/api/third.go @@ -2,13 +2,17 @@ package api import ( "context" + "fmt" "github.com/OpenIMSDK/Open-IM-Server/pkg/a2r" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/config" + "github.com/OpenIMSDK/Open-IM-Server/pkg/common/constant" + "github.com/OpenIMSDK/Open-IM-Server/pkg/common/mcontext" "github.com/OpenIMSDK/Open-IM-Server/pkg/discoveryregistry" "github.com/OpenIMSDK/Open-IM-Server/pkg/errs" "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/third" "github.com/gin-gonic/gin" "net/http" + "strconv" ) var _ context.Context // 解决goland编辑器bug @@ -62,17 +66,28 @@ func (o *Third) GetURL(c *gin.Context) { a2r.Call(third.ThirdClient.GetUrl, o.client, c) return } + operationID := c.Query("operationID") + if operationID == "" { + c.String(http.StatusBadRequest, "operationID is empty") + return + } name := c.Query("name") if name == "" { c.String(http.StatusBadRequest, "name is empty") return } + expires, err := strconv.ParseInt(c.Query("expires"), 10, 64) + if err != nil { + c.String(http.StatusBadRequest, fmt.Sprintf("expires is invalid: %s", err.Error())) + return + } client, err := o.client() if err != nil { c.String(http.StatusInternalServerError, err.Error()) return } - resp, err := client.GetUrl(c, &third.GetUrlReq{Name: name}) + c.Set(constant.OperationID, operationID) + resp, err := client.GetUrl(mcontext.SetOperationID(c, operationID), &third.GetUrlReq{Name: name, Expires: expires}) if err != nil { if errs.ErrArgs.Is(err) { c.String(http.StatusBadRequest, err.Error()) diff --git a/pkg/common/db/controller/storage.go b/pkg/common/db/controller/storage.go index 5ab516de6..844b943ed 100644 --- a/pkg/common/db/controller/storage.go +++ b/pkg/common/db/controller/storage.go @@ -259,7 +259,7 @@ func (c *s3Database) ConfirmPut(ctx context.Context, req *third.ConfirmPutReq) ( return &third.ConfirmPutResp{ Url: c.urlName(o.Name), }, nil - } else if c.isNotFound(err) { + } else if !c.isNotFound(err) { return nil, err } src := make([]obj.BucketObject, pack) @@ -342,15 +342,15 @@ func (c *s3Database) ConfirmPut(ctx context.Context, req *third.ConfirmPutReq) ( Name: dst.Name, CreateTime: time.Now(), } + if err := c.hash.Create(ctx, []*relation.ObjectHashModel{h}); err != nil { + return nil, err + } o := &relation.ObjectInfoModel{ Name: put.Name, Hash: put.Hash, ExpirationTime: put.ExpirationTime, CreateTime: time.Now(), } - if err := c.hash.Create(ctx, []*relation.ObjectHashModel{h}); err != nil { - return nil, err - } if err := c.info.SetObject(ctx, o); err != nil { return nil, err }