Merge branch 'errcode' of github.com:OpenIMSDK/Open-IM-Server into errcode

test-errcode
wangchuxiao 2 years ago
commit 6c1525bd62

@ -92,33 +92,35 @@ sdk:
#对象存储服务以下配置二选一目前支持两种腾讯云和minio二者配置好其中一种即可如果使用minio参考https://doc.rentsoft.cn/#/qa/minio搭建minio服务器
credential: #腾讯cos发送图片、视频、文件时需要请自行申请后替换必须修改
object:
enable: minio
apiURL: http://127.0.0.1:10002/api/third/object?name=
tencent:
appID:
region:
bucket:
secretID:
secretKey:
appID:
region:
bucket:
secretID:
secretKey:
minio: #MinIO 发送图片、视频、文件时需要,请自行申请后替换,必须修改。 客户端初始化InitSDK中 object_storage参数为minio
bucket: openim # 存储内容桶
appBucket: app # 存储app的桶
tempBucket: "openIM"
dataBucket: "openIM"
location: us-east-1
endpoint: http://127.0.0.1:10005 #minio外网ip 这个ip是给客户端访问的
endpointInner: http://127.0.0.1:10005 #minio内网地址 如果im server 可以通过内网访问到 minio就可以
endpointInnerEnable: true #是否启用minio内网地址 启用可以让桶初始化IM server连接minio走内网地址访问
accessKeyID: root
secretAccessKey: openIM123
storageTime: 50 #文件在minio中保存的时间
isDistributedMod: false # 是否分布式多硬盘部署 默认docker-compose中为false
ali: # ali oss
regionID:
accessKeyID:
accessKeySecret:
stsEndpoint:
ossEndpoint:
bucket:
finalHost:
stsDurationSeconds:
OssRoleArn:
regionID:
accessKeyID:
accessKeySecret:
stsEndpoint:
ossEndpoint:
bucket:
finalHost:
stsDurationSeconds:
OssRoleArn:
aws:
accessKeyID: #AssumeRole用户关联的accessKeyID
accessKeySecret: #AssumeRole用户关联的accessKeySecrect
@ -129,7 +131,6 @@ credential: #腾讯cos发送图片、视频、文件时需要请自行申
externalId: #角色扩展Id
roleSessionName: #角色SESSION名称
rpcport: #rpc服务端口 默认即可
openImUserPort: [ 10110 ]
openImFriendPort: [ 10120 ]

@ -2,6 +2,7 @@ package a2r
import (
"OpenIM/internal/apiresp"
"OpenIM/pkg/common/log"
"OpenIM/pkg/errs"
"context"
"github.com/gin-gonic/gin"
@ -15,11 +16,13 @@ func Call[A, B, C any](
) {
var req A
if err := c.BindJSON(&req); err != nil {
log.ZWarn(c, "gin bind json error", err, req)
apiresp.GinError(c, errs.ErrArgs.Wrap(err.Error())) // 参数错误
return
}
if check, ok := any(&req).(interface{ Check() error }); ok {
if err := check.Check(); err != nil {
log.ZWarn(c, "custom check error", err, req)
apiresp.GinError(c, errs.ErrArgs.Wrap(err.Error())) // 参数校验失败
return
}

@ -28,6 +28,7 @@ func (o *Conversation) client() (conversation.ConversationClient, error) {
}
func (o *Conversation) GetAllConversations(c *gin.Context) {
return
a2r.Call(conversation.ConversationClient.GetAllConversations, o.client, c)
}

@ -111,6 +111,9 @@ func NewGinRouter(zk discoveryregistry.SvcDiscoveryRegistry) *gin.Engine {
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.GET("/object", t.GetURL)
}
////Message
chatGroup := r.Group("/msg")

@ -4,10 +4,11 @@ import (
"OpenIM/internal/api/a2r"
"OpenIM/pkg/common/config"
"OpenIM/pkg/discoveryregistry"
"OpenIM/pkg/errs"
"OpenIM/pkg/proto/third"
"context"
"github.com/gin-gonic/gin"
"net/http"
)
var _ context.Context // 解决goland编辑器bug
@ -55,3 +56,34 @@ func (o *Third) FcmUpdateToken(c *gin.Context) {
func (o *Third) SetAppBadge(c *gin.Context) {
a2r.Call(third.ThirdClient.SetAppBadge, o.client, c)
}
func (o *Third) GetURL(c *gin.Context) {
if c.Request.Method == http.MethodPost {
a2r.Call(third.ThirdClient.GetUrl, o.client, c)
return
}
name := c.Query("name")
if name == "" {
c.String(http.StatusBadRequest, "name is empty")
return
}
client, err := o.client()
if err != nil {
c.String(http.StatusInternalServerError, err.Error())
return
}
resp, err := client.GetUrl(c, &third.GetUrlReq{Name: name})
if err != nil {
if errs.ErrArgs.Is(err) {
c.String(http.StatusBadRequest, err.Error())
return
}
if errs.ErrRecordNotFound.Is(err) {
c.String(http.StatusNotFound, err.Error())
return
}
c.String(http.StatusInternalServerError, err.Error())
return
}
c.Redirect(http.StatusTemporaryRedirect, resp.Url)
}

@ -53,8 +53,7 @@ func (ws *WsServer) UnRegister(c *Client) {
}
func (ws *WsServer) Validate(s interface{}) error {
//TODO implement me
panic("implement me")
return nil
}
func (ws *WsServer) GetUserAllCons(userID string) ([]*Client, bool) {

@ -7,11 +7,7 @@
package push
import (
"OpenIM/pkg/common/config"
"OpenIM/pkg/common/constant"
"OpenIM/pkg/common/prome"
"OpenIM/pkg/statistics"
"fmt"
)
type Consumer struct {
@ -31,6 +27,6 @@ func (c *Consumer) initPrometheus() {
}
func (c *Consumer) Start() {
statistics.NewStatistics(&c.successCount, config.Config.ModuleName.PushName, fmt.Sprintf("%d second push to msg_gateway count", constant.StatisticsTimeInterval), constant.StatisticsTimeInterval)
//statistics.NewStatistics(&c.successCount, config.Config.ModuleName.PushName, fmt.Sprintf("%d second push to msg_gateway count", constant.StatisticsTimeInterval), constant.StatisticsTimeInterval)
go c.pushCh.pushConsumerGroup.RegisterHandleAndConsumer(&c.pushCh)
}

@ -1,6 +1,7 @@
package third
import (
"OpenIM/pkg/common/tokenverify"
"OpenIM/pkg/proto/third"
"context"
"time"
@ -18,6 +19,15 @@ func (t *thirdServer) ConfirmPut(ctx context.Context, req *third.ConfirmPutReq)
return t.s3dataBase.ConfirmPut(ctx, req)
}
func (t *thirdServer) GetUrl(ctx context.Context, req *third.GetUrlReq) (*third.GetUrlResp, error) {
if req.Expires <= 0 {
if err := tokenverify.CheckAdmin(ctx); err != nil {
return nil, err
}
}
return t.s3dataBase.GetUrl(ctx, req)
}
func (t *thirdServer) CleanObject(ctx context.Context, now time.Time) {
t.s3dataBase.CleanExpirationObject(ctx, now)
}

@ -68,6 +68,11 @@ type config struct {
DataDir []string `yaml:"dataDir"`
}
Credential struct {
}
Object struct {
Enable string `yaml:"enable"`
ApiURL string `yaml:"apiURL"`
Tencent struct {
AppID string `yaml:"appID"`
Region string `yaml:"region"`
@ -87,16 +92,13 @@ type config struct {
OssRoleArn string `yaml:"OssRoleArn"`
}
Minio struct {
Bucket string `yaml:"bucket"`
AppBucket string `yaml:"appBucket"`
Location string `yaml:"location"`
Endpoint string `yaml:"endpoint"`
AccessKeyID string `yaml:"accessKeyID"`
SecretAccessKey string `yaml:"secretAccessKey"`
EndpointInner string `yaml:"endpointInner"`
EndpointInnerEnable bool `yaml:"endpointInnerEnable"`
StorageTime int `yaml:"storageTime"`
IsDistributedMod bool `yaml:"isDistributedMod"`
TempBucket string `yaml:"tempBucket"`
DataBucket string `yaml:"dataBucket"`
Location string `yaml:"location"`
Endpoint string `yaml:"endpoint"`
AccessKeyID string `yaml:"accessKeyID"`
SecretAccessKey string `yaml:"secretAccessKey"`
IsDistributedMod bool `yaml:"isDistributedMod"`
} `yaml:"minio"`
Aws struct {
AccessKeyID string `yaml:"accessKeyID"`

@ -2,9 +2,11 @@ package controller
import "C"
import (
"OpenIM/pkg/common/config"
"OpenIM/pkg/common/db/obj"
"OpenIM/pkg/common/db/table/relation"
"OpenIM/pkg/common/log"
"OpenIM/pkg/errs"
"OpenIM/pkg/proto/third"
"OpenIM/pkg/utils"
"context"
@ -18,10 +20,17 @@ import (
"time"
)
const (
hashPrefix = "hash"
tempPrefix = "temp"
fragmentPrefix = "fragment_"
)
type S3Database interface {
ApplyPut(ctx context.Context, req *third.ApplyPutReq) (*third.ApplyPutResp, error)
GetPut(ctx context.Context, req *third.GetPutReq) (*third.GetPutResp, error)
ConfirmPut(ctx context.Context, req *third.ConfirmPutReq) (*third.ConfirmPutResp, error)
GetUrl(ctx context.Context, req *third.GetUrlReq) (*third.GetUrlResp, error)
CleanExpirationObject(ctx context.Context, t time.Time)
}
@ -48,7 +57,7 @@ func (c *s3Database) today() string {
// fragmentName 根据序号生成文件名
func (c *s3Database) fragmentName(index int) string {
return "fragment_" + strconv.Itoa(index+1)
return fragmentPrefix + strconv.Itoa(index+1)
}
// getFragmentNum 获取分片大小和分片数量
@ -76,16 +85,13 @@ func (c *s3Database) CheckHash(hash string) error {
return err
}
if len(val) != md5.Size {
return errors.New("hash value error")
return errs.ErrArgs.Wrap("invalid hash")
}
return nil
}
func (c *s3Database) urlName(name string) string {
if name[0] != '/' {
name = "/" + name
}
return "http://127.0.0.1:8080" + name
return config.Config.Object.ApiURL + name
}
func (c *s3Database) UUID() string {
@ -93,7 +99,7 @@ func (c *s3Database) UUID() string {
}
func (c *s3Database) HashName(hash string) string {
return path.Join("hash", c.today(), c.UUID())
return path.Join(hashPrefix, hash+"_"+c.today()+"_"+c.UUID())
}
func (c *s3Database) isNotFound(err error) bool {
@ -141,7 +147,7 @@ func (c *s3Database) ApplyPut(ctx context.Context, req *third.ApplyPutReq) (*thi
ExpirationTime: expirationTime,
EffectiveTime: time.Now().Add(effective),
}
put.Path = path.Join("upload", c.today(), req.Hash, put.PutID)
put.Path = path.Join(tempPrefix, c.today(), req.Hash, put.PutID)
putURLs := make([]string, 0, pack)
for i := 0; i < pack; i++ {
url, err := c.obj.PresignedPutURL(ctx, &obj.ApplyPutArgs{
@ -356,6 +362,29 @@ func (c *s3Database) ConfirmPut(ctx context.Context, req *third.ConfirmPutReq) (
}, nil
}
func (c *s3Database) GetUrl(ctx context.Context, req *third.GetUrlReq) (*third.GetUrlResp, error) {
info, err := c.info.Take(ctx, req.Name)
if err != nil {
return nil, err
}
if info.ExpirationTime != nil && info.ExpirationTime.Before(time.Now()) {
return nil, errs.ErrRecordNotFound.Wrap("object expired")
}
hash, err := c.hash.Take(ctx, info.Hash, c.obj.Name())
if err != nil {
return nil, err
}
u, err := c.obj.GetURL(ctx, hash.Bucket, hash.Name, time.Duration(req.Expires)*time.Millisecond)
if err != nil {
return nil, err
}
return &third.GetUrlResp{
Url: u,
Size: hash.Size,
Hash: hash.Hash,
}, nil
}
func (c *s3Database) CleanExpirationObject(ctx context.Context, t time.Time) {
// 清理上传产生的临时文件
c.cleanPutTemp(ctx, t, 10)

@ -1,51 +1,65 @@
package obj
import (
"OpenIM/pkg/common/config"
"OpenIM/pkg/utils"
"context"
"errors"
"fmt"
"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
"github.com/minio/minio-go/v7/pkg/s3utils"
"net/http"
"net/url"
"time"
)
func NewMinioClient() {
}
func NewMinioInterface() (Interface, error) {
//client, err := minio.New("127.0.0.1:9000", &minio.Options{
// Creds: credentials.NewStaticV4("minioadmin", "minioadmin", ""),
// Secure: false,
//})
// todo 初始化连接和桶
return &minioImpl{}, nil
conf := config.Config.Object.Minio
u, err := url.Parse(conf.Endpoint)
if err != nil {
return nil, fmt.Errorf("minio endpoint parse %w", err)
}
if u.Scheme != "http" && u.Scheme != "https" {
return nil, fmt.Errorf("invalid minio endpoint scheme %s", u.Scheme)
}
client, err := minio.New(u.Host, &minio.Options{
Creds: credentials.NewStaticV4(conf.AccessKeyID, conf.SecretAccessKey, ""),
Secure: u.Scheme == "https",
})
if err != nil {
return nil, fmt.Errorf("minio new client %w", err)
}
ctx, cancel := context.WithTimeout(context.Background(), time.Second*20)
defer cancel()
for _, bucket := range utils.Distinct([]string{conf.TempBucket, conf.DataBucket}) {
exists, err := client.BucketExists(ctx, bucket)
if err != nil {
return nil, fmt.Errorf("minio bucket %s exists %w", bucket, err)
}
if exists {
continue
}
opt := minio.MakeBucketOptions{
Region: conf.Location,
ObjectLocking: conf.IsDistributedMod,
}
if err := client.MakeBucket(ctx, conf.TempBucket, opt); err != nil {
return nil, fmt.Errorf("minio make bucket %s %w", bucket, err)
}
}
return &minioImpl{
client: client,
tempBucket: conf.TempBucket,
dataBucket: conf.DataBucket,
}, nil
}
type minioImpl struct {
tempBucket string // 上传桶
permanentBucket string // 永久桶
clearBucket string // 自动清理桶
urlstr string // 访问地址
client *minio.Client
}
//func (m *minioImpl) Init() error {
// client, err := minio.New("127.0.0.1:9000", &minio.Options{
// Creds: credentials.NewStaticV4("minioadmin", "minioadmin", ""),
// Secure: false,
// })
// if err != nil {
// return fmt.Errorf("minio client error: %w", err)
// }
// m.urlstr = "http://127.0.0.1:9000"
// m.client = client
// m.tempBucket = "temp"
// m.permanentBucket = "permanent"
// m.clearBucket = "clear"
// return nil
//}
tempBucket string // 上传桶
dataBucket string // 永久桶
urlstr string // 访问地址
client *minio.Client
}
func (m *minioImpl) Name() string {
return "minio"
@ -63,26 +77,20 @@ func (m *minioImpl) MinExpirationTime() time.Duration {
return time.Hour * 24
}
func (m *minioImpl) AppendHeader() http.Header {
return map[string][]string{
"x-amz-object-append": {"true"},
}
}
func (m *minioImpl) TempBucket() string {
return m.tempBucket
}
func (m *minioImpl) DataBucket() string {
return m.permanentBucket
return m.dataBucket
}
func (m *minioImpl) ClearBucket() string {
return m.clearBucket
}
func (m *minioImpl) GetURL(bucket string, name string) string {
return fmt.Sprintf("%s/%s/%s", m.urlstr, bucket, name)
func (m *minioImpl) GetURL(ctx context.Context, bucket string, name string, expires time.Duration) (string, error) {
u, err := m.client.PresignedGetObject(ctx, bucket, name, expires, nil)
if err != nil {
return "", err
}
return u.String(), nil
}
func (m *minioImpl) PresignedPutURL(ctx context.Context, args *ApplyPutArgs) (string, error) {
@ -111,7 +119,6 @@ func (m *minioImpl) GetObjectInfo(ctx context.Context, args *BucketObject) (*Obj
return nil, err
}
return &ObjectInfo{
URL: m.GetURL(args.Bucket, args.Name),
Size: info.Size,
Hash: info.ETag,
}, nil

@ -20,10 +20,8 @@ type ApplyPutArgs struct {
}
type ObjectInfo struct {
URL string
Size int64
Hash string
Expiration time.Time
Size int64
Hash string
}
type Interface interface {
@ -40,7 +38,8 @@ type Interface interface {
// DataBucket 永久存储的桶名
DataBucket() string
// GetURL 通过桶名和对象名返回URL
GetURL(bucket string, name string) string
//GetURL(bucket string, name string) string
GetURL(ctx context.Context, bucket string, name string, expires time.Duration) (string, error)
// PresignedPutURL 申请上传,返回PUT的上传地址
PresignedPutURL(ctx context.Context, args *ApplyPutArgs) (string, error)
// GetObjectInfo 获取对象信息

@ -2,6 +2,7 @@ package relation
import (
"OpenIM/pkg/common/db/table/relation"
"OpenIM/pkg/common/log"
"OpenIM/pkg/utils"
"context"
"gorm.io/gorm"
@ -32,7 +33,8 @@ func (u *UserGorm) Update(ctx context.Context, users []*relation.UserModel) (err
// 获取指定用户信息 不存在,也不返回错误
func (u *UserGorm) Find(ctx context.Context, userIDs []string) (users []*relation.UserModel, err error) {
err = utils.Wrap(u.DB.Debug().Where("user_id in ?", userIDs).Find(&users).Error, "")
log.ZDebug(ctx, "Find args", "userIDs", userIDs)
err = utils.Wrap(u.DB.Where("user_id in ?", userIDs).Find(&users).Error, "")
return users, err
}

@ -9,6 +9,7 @@ import (
type CodeError interface {
Code() int
Msg() string
Is(err error) bool
Wrap(msg ...string) error
error
}
@ -38,6 +39,17 @@ func (e *codeError) Wrap(w ...string) error {
return errors.Wrap(e, strings.Join(w, ", "))
}
func (e *codeError) Is(err error) bool {
if err == nil {
return false
}
codeErr, ok := Unwrap(err).(CodeError)
if ok {
return codeErr.Code() == e.code
}
return false
}
func (e *codeError) Error() string {
return fmt.Sprintf("[%d]%s", e.code, e.msg)
}

@ -39,7 +39,7 @@ func (m *ApplyPutReq) Reset() { *m = ApplyPutReq{} }
func (m *ApplyPutReq) String() string { return proto.CompactTextString(m) }
func (*ApplyPutReq) ProtoMessage() {}
func (*ApplyPutReq) Descriptor() ([]byte, []int) {
return fileDescriptor_third_ed6a664e4920a6b2, []int{0}
return fileDescriptor_third_aac767b0c26bb83e, []int{0}
}
func (m *ApplyPutReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ApplyPutReq.Unmarshal(m, b)
@ -109,7 +109,7 @@ func (m *ApplyPutResp) Reset() { *m = ApplyPutResp{} }
func (m *ApplyPutResp) String() string { return proto.CompactTextString(m) }
func (*ApplyPutResp) ProtoMessage() {}
func (*ApplyPutResp) Descriptor() ([]byte, []int) {
return fileDescriptor_third_ed6a664e4920a6b2, []int{1}
return fileDescriptor_third_aac767b0c26bb83e, []int{1}
}
func (m *ApplyPutResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ApplyPutResp.Unmarshal(m, b)
@ -168,7 +168,7 @@ func (m *ConfirmPutReq) Reset() { *m = ConfirmPutReq{} }
func (m *ConfirmPutReq) String() string { return proto.CompactTextString(m) }
func (*ConfirmPutReq) ProtoMessage() {}
func (*ConfirmPutReq) Descriptor() ([]byte, []int) {
return fileDescriptor_third_ed6a664e4920a6b2, []int{2}
return fileDescriptor_third_aac767b0c26bb83e, []int{2}
}
func (m *ConfirmPutReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConfirmPutReq.Unmarshal(m, b)
@ -206,7 +206,7 @@ func (m *ConfirmPutResp) Reset() { *m = ConfirmPutResp{} }
func (m *ConfirmPutResp) String() string { return proto.CompactTextString(m) }
func (*ConfirmPutResp) ProtoMessage() {}
func (*ConfirmPutResp) Descriptor() ([]byte, []int) {
return fileDescriptor_third_ed6a664e4920a6b2, []int{3}
return fileDescriptor_third_aac767b0c26bb83e, []int{3}
}
func (m *ConfirmPutResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConfirmPutResp.Unmarshal(m, b)
@ -233,6 +233,106 @@ func (m *ConfirmPutResp) GetUrl() string {
return ""
}
type GetUrlReq struct {
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
Expires int64 `protobuf:"varint,2,opt,name=expires" json:"expires,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *GetUrlReq) Reset() { *m = GetUrlReq{} }
func (m *GetUrlReq) String() string { return proto.CompactTextString(m) }
func (*GetUrlReq) ProtoMessage() {}
func (*GetUrlReq) Descriptor() ([]byte, []int) {
return fileDescriptor_third_aac767b0c26bb83e, []int{4}
}
func (m *GetUrlReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUrlReq.Unmarshal(m, b)
}
func (m *GetUrlReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetUrlReq.Marshal(b, m, deterministic)
}
func (dst *GetUrlReq) XXX_Merge(src proto.Message) {
xxx_messageInfo_GetUrlReq.Merge(dst, src)
}
func (m *GetUrlReq) XXX_Size() int {
return xxx_messageInfo_GetUrlReq.Size(m)
}
func (m *GetUrlReq) XXX_DiscardUnknown() {
xxx_messageInfo_GetUrlReq.DiscardUnknown(m)
}
var xxx_messageInfo_GetUrlReq proto.InternalMessageInfo
func (m *GetUrlReq) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *GetUrlReq) GetExpires() int64 {
if m != nil {
return m.Expires
}
return 0
}
type GetUrlResp struct {
Url string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
Size int64 `protobuf:"varint,2,opt,name=size" json:"size,omitempty"`
Hash string `protobuf:"bytes,3,opt,name=hash" json:"hash,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *GetUrlResp) Reset() { *m = GetUrlResp{} }
func (m *GetUrlResp) String() string { return proto.CompactTextString(m) }
func (*GetUrlResp) ProtoMessage() {}
func (*GetUrlResp) Descriptor() ([]byte, []int) {
return fileDescriptor_third_aac767b0c26bb83e, []int{5}
}
func (m *GetUrlResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUrlResp.Unmarshal(m, b)
}
func (m *GetUrlResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_GetUrlResp.Marshal(b, m, deterministic)
}
func (dst *GetUrlResp) XXX_Merge(src proto.Message) {
xxx_messageInfo_GetUrlResp.Merge(dst, src)
}
func (m *GetUrlResp) XXX_Size() int {
return xxx_messageInfo_GetUrlResp.Size(m)
}
func (m *GetUrlResp) XXX_DiscardUnknown() {
xxx_messageInfo_GetUrlResp.DiscardUnknown(m)
}
var xxx_messageInfo_GetUrlResp proto.InternalMessageInfo
func (m *GetUrlResp) GetUrl() string {
if m != nil {
return m.Url
}
return ""
}
func (m *GetUrlResp) GetSize() int64 {
if m != nil {
return m.Size
}
return 0
}
func (m *GetUrlResp) GetHash() string {
if m != nil {
return m.Hash
}
return ""
}
type GetPutReq struct {
PutID string `protobuf:"bytes,1,opt,name=putID" json:"putID,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
@ -244,7 +344,7 @@ func (m *GetPutReq) Reset() { *m = GetPutReq{} }
func (m *GetPutReq) String() string { return proto.CompactTextString(m) }
func (*GetPutReq) ProtoMessage() {}
func (*GetPutReq) Descriptor() ([]byte, []int) {
return fileDescriptor_third_ed6a664e4920a6b2, []int{4}
return fileDescriptor_third_aac767b0c26bb83e, []int{6}
}
func (m *GetPutReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetPutReq.Unmarshal(m, b)
@ -283,7 +383,7 @@ func (m *GetPutFragment) Reset() { *m = GetPutFragment{} }
func (m *GetPutFragment) String() string { return proto.CompactTextString(m) }
func (*GetPutFragment) ProtoMessage() {}
func (*GetPutFragment) Descriptor() ([]byte, []int) {
return fileDescriptor_third_ed6a664e4920a6b2, []int{5}
return fileDescriptor_third_aac767b0c26bb83e, []int{7}
}
func (m *GetPutFragment) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetPutFragment.Unmarshal(m, b)
@ -333,7 +433,7 @@ func (m *GetPutResp) Reset() { *m = GetPutResp{} }
func (m *GetPutResp) String() string { return proto.CompactTextString(m) }
func (*GetPutResp) ProtoMessage() {}
func (*GetPutResp) Descriptor() ([]byte, []int) {
return fileDescriptor_third_ed6a664e4920a6b2, []int{6}
return fileDescriptor_third_aac767b0c26bb83e, []int{8}
}
func (m *GetPutResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetPutResp.Unmarshal(m, b)
@ -406,7 +506,7 @@ func (m *GetSignalInvitationInfoReq) Reset() { *m = GetSignalInvitationI
func (m *GetSignalInvitationInfoReq) String() string { return proto.CompactTextString(m) }
func (*GetSignalInvitationInfoReq) ProtoMessage() {}
func (*GetSignalInvitationInfoReq) Descriptor() ([]byte, []int) {
return fileDescriptor_third_ed6a664e4920a6b2, []int{7}
return fileDescriptor_third_aac767b0c26bb83e, []int{9}
}
func (m *GetSignalInvitationInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSignalInvitationInfoReq.Unmarshal(m, b)
@ -445,7 +545,7 @@ func (m *GetSignalInvitationInfoResp) Reset() { *m = GetSignalInvitation
func (m *GetSignalInvitationInfoResp) String() string { return proto.CompactTextString(m) }
func (*GetSignalInvitationInfoResp) ProtoMessage() {}
func (*GetSignalInvitationInfoResp) Descriptor() ([]byte, []int) {
return fileDescriptor_third_ed6a664e4920a6b2, []int{8}
return fileDescriptor_third_aac767b0c26bb83e, []int{10}
}
func (m *GetSignalInvitationInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSignalInvitationInfoResp.Unmarshal(m, b)
@ -490,7 +590,7 @@ func (m *GetSignalInvitationInfoStartAppReq) Reset() { *m = GetSignalInv
func (m *GetSignalInvitationInfoStartAppReq) String() string { return proto.CompactTextString(m) }
func (*GetSignalInvitationInfoStartAppReq) ProtoMessage() {}
func (*GetSignalInvitationInfoStartAppReq) Descriptor() ([]byte, []int) {
return fileDescriptor_third_ed6a664e4920a6b2, []int{9}
return fileDescriptor_third_aac767b0c26bb83e, []int{11}
}
func (m *GetSignalInvitationInfoStartAppReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSignalInvitationInfoStartAppReq.Unmarshal(m, b)
@ -529,7 +629,7 @@ func (m *GetSignalInvitationInfoStartAppResp) Reset() { *m = GetSignalIn
func (m *GetSignalInvitationInfoStartAppResp) String() string { return proto.CompactTextString(m) }
func (*GetSignalInvitationInfoStartAppResp) ProtoMessage() {}
func (*GetSignalInvitationInfoStartAppResp) Descriptor() ([]byte, []int) {
return fileDescriptor_third_ed6a664e4920a6b2, []int{10}
return fileDescriptor_third_aac767b0c26bb83e, []int{12}
}
func (m *GetSignalInvitationInfoStartAppResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSignalInvitationInfoStartAppResp.Unmarshal(m, b)
@ -577,7 +677,7 @@ func (m *FcmUpdateTokenReq) Reset() { *m = FcmUpdateTokenReq{} }
func (m *FcmUpdateTokenReq) String() string { return proto.CompactTextString(m) }
func (*FcmUpdateTokenReq) ProtoMessage() {}
func (*FcmUpdateTokenReq) Descriptor() ([]byte, []int) {
return fileDescriptor_third_ed6a664e4920a6b2, []int{11}
return fileDescriptor_third_aac767b0c26bb83e, []int{13}
}
func (m *FcmUpdateTokenReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FcmUpdateTokenReq.Unmarshal(m, b)
@ -635,7 +735,7 @@ func (m *FcmUpdateTokenResp) Reset() { *m = FcmUpdateTokenResp{} }
func (m *FcmUpdateTokenResp) String() string { return proto.CompactTextString(m) }
func (*FcmUpdateTokenResp) ProtoMessage() {}
func (*FcmUpdateTokenResp) Descriptor() ([]byte, []int) {
return fileDescriptor_third_ed6a664e4920a6b2, []int{12}
return fileDescriptor_third_aac767b0c26bb83e, []int{14}
}
func (m *FcmUpdateTokenResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FcmUpdateTokenResp.Unmarshal(m, b)
@ -667,7 +767,7 @@ func (m *SetAppBadgeReq) Reset() { *m = SetAppBadgeReq{} }
func (m *SetAppBadgeReq) String() string { return proto.CompactTextString(m) }
func (*SetAppBadgeReq) ProtoMessage() {}
func (*SetAppBadgeReq) Descriptor() ([]byte, []int) {
return fileDescriptor_third_ed6a664e4920a6b2, []int{13}
return fileDescriptor_third_aac767b0c26bb83e, []int{15}
}
func (m *SetAppBadgeReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetAppBadgeReq.Unmarshal(m, b)
@ -711,7 +811,7 @@ func (m *SetAppBadgeResp) Reset() { *m = SetAppBadgeResp{} }
func (m *SetAppBadgeResp) String() string { return proto.CompactTextString(m) }
func (*SetAppBadgeResp) ProtoMessage() {}
func (*SetAppBadgeResp) Descriptor() ([]byte, []int) {
return fileDescriptor_third_ed6a664e4920a6b2, []int{14}
return fileDescriptor_third_aac767b0c26bb83e, []int{16}
}
func (m *SetAppBadgeResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetAppBadgeResp.Unmarshal(m, b)
@ -736,6 +836,8 @@ func init() {
proto.RegisterType((*ApplyPutResp)(nil), "OpenIMServer.third.ApplyPutResp")
proto.RegisterType((*ConfirmPutReq)(nil), "OpenIMServer.third.ConfirmPutReq")
proto.RegisterType((*ConfirmPutResp)(nil), "OpenIMServer.third.ConfirmPutResp")
proto.RegisterType((*GetUrlReq)(nil), "OpenIMServer.third.GetUrlReq")
proto.RegisterType((*GetUrlResp)(nil), "OpenIMServer.third.GetUrlResp")
proto.RegisterType((*GetPutReq)(nil), "OpenIMServer.third.GetPutReq")
proto.RegisterType((*GetPutFragment)(nil), "OpenIMServer.third.GetPutFragment")
proto.RegisterType((*GetPutResp)(nil), "OpenIMServer.third.GetPutResp")
@ -763,6 +865,7 @@ type ThirdClient interface {
ApplyPut(ctx context.Context, in *ApplyPutReq, opts ...grpc.CallOption) (*ApplyPutResp, error)
GetPut(ctx context.Context, in *GetPutReq, opts ...grpc.CallOption) (*GetPutResp, error)
ConfirmPut(ctx context.Context, in *ConfirmPutReq, opts ...grpc.CallOption) (*ConfirmPutResp, error)
GetUrl(ctx context.Context, in *GetUrlReq, opts ...grpc.CallOption) (*GetUrlResp, error)
GetSignalInvitationInfo(ctx context.Context, in *GetSignalInvitationInfoReq, opts ...grpc.CallOption) (*GetSignalInvitationInfoResp, error)
GetSignalInvitationInfoStartApp(ctx context.Context, in *GetSignalInvitationInfoStartAppReq, opts ...grpc.CallOption) (*GetSignalInvitationInfoStartAppResp, error)
FcmUpdateToken(ctx context.Context, in *FcmUpdateTokenReq, opts ...grpc.CallOption) (*FcmUpdateTokenResp, error)
@ -804,6 +907,15 @@ func (c *thirdClient) ConfirmPut(ctx context.Context, in *ConfirmPutReq, opts ..
return out, nil
}
func (c *thirdClient) GetUrl(ctx context.Context, in *GetUrlReq, opts ...grpc.CallOption) (*GetUrlResp, error) {
out := new(GetUrlResp)
err := grpc.Invoke(ctx, "/OpenIMServer.third.third/GetUrl", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *thirdClient) GetSignalInvitationInfo(ctx context.Context, in *GetSignalInvitationInfoReq, opts ...grpc.CallOption) (*GetSignalInvitationInfoResp, error) {
out := new(GetSignalInvitationInfoResp)
err := grpc.Invoke(ctx, "/OpenIMServer.third.third/GetSignalInvitationInfo", in, out, c.cc, opts...)
@ -846,6 +958,7 @@ type ThirdServer interface {
ApplyPut(context.Context, *ApplyPutReq) (*ApplyPutResp, error)
GetPut(context.Context, *GetPutReq) (*GetPutResp, error)
ConfirmPut(context.Context, *ConfirmPutReq) (*ConfirmPutResp, error)
GetUrl(context.Context, *GetUrlReq) (*GetUrlResp, error)
GetSignalInvitationInfo(context.Context, *GetSignalInvitationInfoReq) (*GetSignalInvitationInfoResp, error)
GetSignalInvitationInfoStartApp(context.Context, *GetSignalInvitationInfoStartAppReq) (*GetSignalInvitationInfoStartAppResp, error)
FcmUpdateToken(context.Context, *FcmUpdateTokenReq) (*FcmUpdateTokenResp, error)
@ -910,6 +1023,24 @@ func _Third_ConfirmPut_Handler(srv interface{}, ctx context.Context, dec func(in
return interceptor(ctx, in, info, handler)
}
func _Third_GetUrl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetUrlReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ThirdServer).GetUrl(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/OpenIMServer.third.third/GetUrl",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ThirdServer).GetUrl(ctx, req.(*GetUrlReq))
}
return interceptor(ctx, in, info, handler)
}
func _Third_GetSignalInvitationInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetSignalInvitationInfoReq)
if err := dec(in); err != nil {
@ -998,6 +1129,10 @@ var _Third_serviceDesc = grpc.ServiceDesc{
MethodName: "ConfirmPut",
Handler: _Third_ConfirmPut_Handler,
},
{
MethodName: "GetUrl",
Handler: _Third_GetUrl_Handler,
},
{
MethodName: "GetSignalInvitationInfo",
Handler: _Third_GetSignalInvitationInfo_Handler,
@ -1019,53 +1154,56 @@ var _Third_serviceDesc = grpc.ServiceDesc{
Metadata: "third/third.proto",
}
func init() { proto.RegisterFile("third/third.proto", fileDescriptor_third_ed6a664e4920a6b2) }
var fileDescriptor_third_ed6a664e4920a6b2 = []byte{
// 717 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xc1, 0x6e, 0xd3, 0x4a,
0x14, 0x95, 0x93, 0x26, 0xaf, 0xb9, 0xe9, 0x4b, 0x5f, 0xaf, 0xaa, 0x47, 0x64, 0x4a, 0x9b, 0x4e,
0xd5, 0x92, 0x4d, 0x13, 0xa9, 0x48, 0x80, 0x04, 0x42, 0xb4, 0x45, 0xad, 0x82, 0x88, 0x1a, 0x39,
0x2d, 0x0b, 0x36, 0xc8, 0x24, 0x93, 0xc4, 0xaa, 0x3d, 0x1e, 0x3c, 0xe3, 0x16, 0xfa, 0x07, 0x88,
0x1d, 0x5f, 0xc3, 0x0a, 0xf1, 0x01, 0x7c, 0x14, 0xf2, 0xd8, 0x49, 0xec, 0xc4, 0x49, 0x28, 0x1b,
0xd8, 0x44, 0x33, 0xc7, 0xe7, 0x9e, 0x39, 0x73, 0xe7, 0xde, 0xab, 0xc0, 0x9a, 0x1c, 0x58, 0x5e,
0xb7, 0xae, 0x7e, 0x6b, 0xdc, 0x73, 0xa5, 0x8b, 0x78, 0xc6, 0x29, 0x6b, 0x34, 0xdb, 0xd4, 0xbb,
0xa2, 0x5e, 0x4d, 0x7d, 0xd1, 0xef, 0x07, 0xd8, 0x7e, 0xa3, 0xb9, 0x1f, 0xa2, 0x75, 0x7e, 0xd9,
0xaf, 0x2b, 0x76, 0x5d, 0x74, 0x2f, 0xaf, 0x45, 0xfd, 0x5a, 0x84, 0xc1, 0xe4, 0xb3, 0x06, 0xc5,
0x43, 0xce, 0xed, 0x8f, 0x2d, 0x5f, 0x1a, 0xf4, 0x3d, 0x22, 0x2c, 0x31, 0xd3, 0xa1, 0x65, 0xad,
0xa2, 0x55, 0x0b, 0x86, 0x5a, 0x07, 0x98, 0xb0, 0x6e, 0x68, 0x39, 0x53, 0xd1, 0xaa, 0x59, 0x43,
0xad, 0x03, 0x6c, 0x60, 0x8a, 0x41, 0x39, 0x1b, 0xf2, 0x82, 0x35, 0x12, 0x58, 0xe9, 0x79, 0x66,
0xdf, 0xa1, 0x4c, 0xb6, 0x03, 0xfe, 0x92, 0xe2, 0x27, 0x30, 0xdc, 0x80, 0x42, 0xc7, 0xa6, 0x26,
0x3b, 0xb7, 0x1c, 0x5a, 0xce, 0x29, 0xc2, 0x18, 0x20, 0x12, 0x56, 0xc6, 0x66, 0x04, 0xc7, 0xff,
0x20, 0xeb, 0x7b, 0x76, 0x64, 0x26, 0x58, 0xe2, 0x3a, 0xe4, 0xb8, 0x2f, 0x1b, 0x2f, 0x94, 0x99,
0x82, 0x11, 0x6e, 0xa6, 0x4e, 0xce, 0xa6, 0x9c, 0x5c, 0x86, 0x7f, 0x5a, 0xbe, 0xbc, 0x30, 0x5e,
0x89, 0x72, 0xae, 0x92, 0xad, 0x16, 0x8c, 0xe1, 0x96, 0xec, 0xc2, 0xbf, 0xc7, 0x2e, 0xeb, 0x59,
0x9e, 0x13, 0x25, 0x61, 0x74, 0x88, 0x16, 0x3b, 0x84, 0x10, 0x28, 0xc5, 0x69, 0x69, 0xf6, 0xc8,
0x36, 0x14, 0x4e, 0xa9, 0x9c, 0x2b, 0xf3, 0x18, 0x4a, 0x21, 0xe5, 0x24, 0x72, 0x37, 0xca, 0xaf,
0x96, 0x92, 0xdf, 0xcc, 0x38, 0xbf, 0xe4, 0x87, 0x06, 0x30, 0x54, 0x17, 0xfc, 0xcf, 0x3e, 0x15,
0x3e, 0x87, 0xc2, 0x90, 0x2d, 0xca, 0xf9, 0x4a, 0xb6, 0x5a, 0x3c, 0x20, 0xb5, 0xe9, 0x4a, 0xac,
0x25, 0xef, 0x6a, 0x8c, 0x83, 0xc8, 0x33, 0xd0, 0x4f, 0xa9, 0x6c, 0x5b, 0x7d, 0x66, 0xda, 0x0d,
0x76, 0x65, 0x49, 0x53, 0x5a, 0x2e, 0x6b, 0xb0, 0x9e, 0x1b, 0x24, 0xaf, 0x02, 0xc5, 0x63, 0xdb,
0xa2, 0x4c, 0x36, 0x45, 0x7f, 0x94, 0xc2, 0x38, 0x44, 0xbe, 0x6a, 0x70, 0x77, 0xa6, 0x80, 0xe0,
0xf8, 0x12, 0x4a, 0x56, 0x02, 0x55, 0x22, 0x53, 0x36, 0x55, 0x43, 0xd4, 0x26, 0xe2, 0x27, 0x22,
0xb1, 0x09, 0xab, 0x6e, 0xaf, 0x67, 0x5b, 0x8c, 0xb6, 0x7c, 0x31, 0x50, 0x62, 0x19, 0x25, 0xb6,
0x93, 0x26, 0x76, 0x96, 0xa4, 0x1a, 0x93, 0xb1, 0xe4, 0x29, 0x90, 0x19, 0xce, 0xdb, 0xd2, 0xf4,
0xe4, 0x21, 0xe7, 0x41, 0x0a, 0xfe, 0x87, 0xbc, 0x2f, 0xa8, 0x37, 0xba, 0x7d, 0xb4, 0x23, 0xdf,
0x35, 0xd8, 0x59, 0x18, 0xfe, 0x77, 0x27, 0xe0, 0x93, 0x06, 0x6b, 0x27, 0x1d, 0xe7, 0x82, 0x77,
0x4d, 0x49, 0xcf, 0xdd, 0x4b, 0xca, 0x82, 0x0b, 0x6f, 0x02, 0xb4, 0x6c, 0x53, 0xf6, 0x5c, 0xcf,
0x89, 0x2e, 0x9d, 0x33, 0x62, 0x08, 0xea, 0xb0, 0x7c, 0xd2, 0x71, 0x14, 0x3d, 0x6a, 0x8c, 0xd1,
0x3e, 0x68, 0x6f, 0xb3, 0xd3, 0x71, 0x7d, 0x26, 0xa3, 0x42, 0x1f, 0x6e, 0x03, 0x55, 0xfa, 0x81,
0x5b, 0x1e, 0x55, 0x85, 0x1c, 0x56, 0x7a, 0x0c, 0x21, 0xeb, 0x80, 0x93, 0x56, 0x04, 0x27, 0x2d,
0x28, 0xb5, 0x69, 0x90, 0xca, 0x23, 0xb3, 0xdb, 0xa7, 0x73, 0x9e, 0x03, 0xf7, 0xa0, 0x74, 0xc8,
0xf9, 0x05, 0xf3, 0xa8, 0xd9, 0x3d, 0x56, 0x06, 0x32, 0xca, 0xf9, 0x04, 0x4a, 0xd6, 0x60, 0x35,
0xa1, 0x28, 0xf8, 0xc1, 0xb7, 0x1c, 0xe4, 0x54, 0x9b, 0x60, 0x13, 0x96, 0x87, 0x93, 0x0f, 0xb7,
0xd2, 0xfa, 0x28, 0x36, 0xa4, 0xf5, 0xca, 0x7c, 0x82, 0xe0, 0x78, 0x0a, 0xf9, 0xb0, 0xf1, 0xf0,
0xde, 0xec, 0xa6, 0x0c, 0xa4, 0x36, 0xe7, 0x7d, 0x16, 0x1c, 0xdb, 0x00, 0xe3, 0xa1, 0x87, 0xdb,
0x69, 0xec, 0xc4, 0xec, 0xd4, 0xc9, 0x22, 0x8a, 0xe0, 0x78, 0x03, 0x77, 0x66, 0xd4, 0x2f, 0xd6,
0x66, 0xf8, 0x99, 0x31, 0x26, 0xf4, 0xfa, 0xad, 0xf8, 0x82, 0xe3, 0x17, 0x0d, 0xb6, 0x16, 0x34,
0x0f, 0x3e, 0xbc, 0x85, 0x68, 0xac, 0x61, 0xf5, 0x47, 0xbf, 0x15, 0x27, 0x38, 0xbe, 0x85, 0x52,
0xb2, 0x04, 0x71, 0x37, 0x4d, 0x6a, 0xaa, 0x63, 0xf4, 0xbd, 0x5f, 0xa1, 0x09, 0x8e, 0xaf, 0xa1,
0x18, 0xab, 0x3d, 0x4c, 0x7d, 0xa4, 0x64, 0xb9, 0xeb, 0x3b, 0x0b, 0x39, 0x82, 0x1f, 0x6d, 0xbe,
0xd9, 0x08, 0x59, 0xb1, 0x7f, 0x18, 0x8a, 0xf9, 0x44, 0xfd, 0xbe, 0xcb, 0x2b, 0xe8, 0xc1, 0xcf,
0x00, 0x00, 0x00, 0xff, 0xff, 0x6f, 0x2e, 0xa0, 0xaa, 0xb7, 0x08, 0x00, 0x00,
func init() { proto.RegisterFile("third/third.proto", fileDescriptor_third_aac767b0c26bb83e) }
var fileDescriptor_third_aac767b0c26bb83e = []byte{
// 754 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xdf, 0x6e, 0xd3, 0x3e,
0x18, 0x55, 0xda, 0xb5, 0x5b, 0xbf, 0xee, 0xd7, 0xfd, 0x66, 0x4d, 0x10, 0x85, 0xb1, 0x75, 0x9e,
0x36, 0x7a, 0xb3, 0x56, 0x1a, 0x12, 0x7f, 0x04, 0x42, 0x6c, 0x43, 0x9d, 0x8a, 0xa8, 0x56, 0xa5,
0x2b, 0x17, 0xdc, 0xa0, 0xd0, 0xba, 0x6d, 0xb4, 0x34, 0x31, 0xb6, 0xb3, 0xc1, 0x5e, 0x00, 0x21,
0xee, 0x78, 0x1a, 0x2e, 0x79, 0x00, 0x1e, 0x0a, 0xc5, 0x49, 0xda, 0xa4, 0x4d, 0xda, 0x8d, 0x1b,
0xb8, 0x89, 0xec, 0x93, 0xf3, 0x1d, 0x1f, 0x7f, 0xf1, 0x71, 0x0b, 0xeb, 0x62, 0x68, 0xb2, 0x5e,
0x4d, 0x3e, 0xab, 0x94, 0x39, 0xc2, 0x41, 0xe8, 0x8c, 0x12, 0xbb, 0xd1, 0x6c, 0x13, 0x76, 0x49,
0x58, 0x55, 0xbe, 0xd1, 0x1e, 0x78, 0xd8, 0x41, 0xa3, 0x79, 0xe0, 0xa3, 0x35, 0x7a, 0x31, 0xa8,
0x49, 0x76, 0x8d, 0xf7, 0x2e, 0xae, 0x78, 0xed, 0x8a, 0xfb, 0xc5, 0xf8, 0x9b, 0x02, 0xc5, 0x23,
0x4a, 0xad, 0xcf, 0x2d, 0x57, 0xe8, 0xe4, 0x23, 0x42, 0xb0, 0x64, 0x1b, 0x23, 0xa2, 0x2a, 0x65,
0xa5, 0x52, 0xd0, 0xe5, 0xd8, 0xc3, 0xb8, 0x79, 0x4d, 0xd4, 0x4c, 0x59, 0xa9, 0x64, 0x75, 0x39,
0xf6, 0xb0, 0xa1, 0xc1, 0x87, 0x6a, 0xd6, 0xe7, 0x79, 0x63, 0x84, 0x61, 0xb5, 0xcf, 0x8c, 0xc1,
0x88, 0xd8, 0xa2, 0xed, 0xf1, 0x97, 0x24, 0x3f, 0x86, 0xa1, 0x4d, 0x28, 0x74, 0x2d, 0x62, 0xd8,
0xe7, 0xe6, 0x88, 0xa8, 0x39, 0x49, 0x98, 0x00, 0x58, 0xc0, 0xea, 0xc4, 0x0c, 0xa7, 0xe8, 0x7f,
0xc8, 0xba, 0xcc, 0x0a, 0xcc, 0x78, 0x43, 0xb4, 0x01, 0x39, 0xea, 0x8a, 0xc6, 0x2b, 0x69, 0xa6,
0xa0, 0xfb, 0x93, 0x99, 0x95, 0xb3, 0x09, 0x2b, 0xab, 0xb0, 0xdc, 0x72, 0x45, 0x47, 0x7f, 0xc3,
0xd5, 0x5c, 0x39, 0x5b, 0x29, 0xe8, 0xe1, 0x14, 0xef, 0xc1, 0x7f, 0x27, 0x8e, 0xdd, 0x37, 0xd9,
0x28, 0x68, 0xc2, 0x78, 0x11, 0x25, 0xb2, 0x08, 0xc6, 0x50, 0x8a, 0xd2, 0x92, 0xec, 0xe1, 0xa7,
0x50, 0x38, 0x25, 0xa2, 0xc3, 0xac, 0xb4, 0x5e, 0xaa, 0xb0, 0x4c, 0x3e, 0x51, 0x93, 0x11, 0x1e,
0xb4, 0x33, 0x9c, 0xe2, 0x3a, 0x40, 0x58, 0x9a, 0xb8, 0xf3, 0x1b, 0x7e, 0x05, 0xbc, 0x23, 0x2d,
0xcc, 0xdd, 0xc9, 0x13, 0x28, 0xf9, 0x94, 0x7a, 0xd0, 0xa0, 0xb1, 0xb8, 0x92, 0x20, 0x9e, 0x89,
0x88, 0xff, 0x52, 0xa4, 0xcb, 0xb0, 0x01, 0x7f, 0xf5, 0xb4, 0xa0, 0x97, 0x50, 0x08, 0xd9, 0x5c,
0xcd, 0x97, 0xb3, 0x95, 0xe2, 0x21, 0xae, 0xce, 0x86, 0xa1, 0x1a, 0xdf, 0xab, 0x3e, 0x29, 0xc2,
0x2f, 0x40, 0x3b, 0x25, 0xa2, 0x6d, 0x0e, 0x6c, 0xc3, 0x6a, 0xd8, 0x97, 0xa6, 0x30, 0x84, 0xe9,
0xd8, 0x0d, 0xbb, 0xef, 0x78, 0xcd, 0x2b, 0x43, 0xf1, 0xc4, 0x32, 0x89, 0x2d, 0x9a, 0x7c, 0x30,
0x6e, 0x61, 0x14, 0xc2, 0x3f, 0x14, 0xb8, 0x97, 0x2a, 0xc0, 0x29, 0x7a, 0x0d, 0x25, 0x33, 0x86,
0x4a, 0x91, 0x19, 0x9b, 0x32, 0x93, 0xd5, 0xa9, 0xfa, 0xa9, 0x4a, 0xd4, 0x84, 0x35, 0xa7, 0xdf,
0xb7, 0x4c, 0x9b, 0xb4, 0x5c, 0x3e, 0x94, 0x62, 0x19, 0x29, 0xb6, 0x9b, 0x24, 0x76, 0x16, 0xa7,
0xea, 0xd3, 0xb5, 0xf8, 0x39, 0xe0, 0x14, 0xe7, 0x6d, 0x61, 0x30, 0x71, 0x44, 0xa9, 0xd7, 0x82,
0x3b, 0x90, 0x77, 0x39, 0x61, 0xe3, 0xdd, 0x07, 0x33, 0xfc, 0x53, 0x81, 0xdd, 0x85, 0xe5, 0xff,
0x76, 0x03, 0xbe, 0x2a, 0xb0, 0x5e, 0xef, 0x8e, 0x3a, 0xb4, 0x67, 0x08, 0x72, 0xee, 0x5c, 0x10,
0xdb, 0xdb, 0xf0, 0x16, 0x40, 0xcb, 0x32, 0x44, 0xdf, 0x61, 0xa3, 0x60, 0xd3, 0x39, 0x3d, 0x82,
0x20, 0x0d, 0x56, 0xea, 0xdd, 0x91, 0xa4, 0x07, 0xc1, 0x18, 0xcf, 0xbd, 0x6c, 0x1b, 0xdd, 0xae,
0xe3, 0xda, 0x22, 0x38, 0xe8, 0xe1, 0xd4, 0x53, 0xf5, 0x63, 0x2e, 0x0f, 0xb2, 0x7f, 0xd2, 0x23,
0x08, 0xde, 0x00, 0x34, 0x6d, 0x85, 0x53, 0xdc, 0x82, 0x52, 0x9b, 0x78, 0xad, 0x3c, 0x36, 0x7a,
0x03, 0x32, 0xe7, 0x73, 0xa0, 0x7d, 0x28, 0x1d, 0x51, 0xda, 0xb1, 0x19, 0x31, 0x7a, 0x27, 0xd2,
0x40, 0x46, 0x3a, 0x9f, 0x42, 0xf1, 0x3a, 0xac, 0xc5, 0x14, 0x39, 0x3d, 0xfc, 0x92, 0x87, 0x9c,
0x8c, 0x09, 0x6a, 0xc2, 0x4a, 0x78, 0xf9, 0xa2, 0xed, 0xa4, 0x1c, 0x45, 0x7e, 0x27, 0xb4, 0xf2,
0x7c, 0x02, 0xa7, 0xe8, 0x14, 0xf2, 0x7e, 0xf0, 0xd0, 0xfd, 0xf4, 0x50, 0x7a, 0x52, 0x5b, 0xf3,
0x5e, 0x73, 0x8a, 0xda, 0x00, 0x93, 0x7b, 0x17, 0xed, 0x24, 0xb1, 0x63, 0xd7, 0xb7, 0x86, 0x17,
0x51, 0xc6, 0xee, 0x3a, 0xcc, 0x4a, 0x75, 0xe7, 0x5f, 0xe2, 0xa9, 0xee, 0xc2, 0x8b, 0xfa, 0x1a,
0xee, 0xa6, 0x04, 0x01, 0x55, 0x53, 0x4a, 0x53, 0xee, 0x1b, 0xad, 0x76, 0x2b, 0x3e, 0xa7, 0xe8,
0xbb, 0x02, 0xdb, 0x0b, 0x52, 0x88, 0x1e, 0xdd, 0x42, 0x34, 0x92, 0x7c, 0xed, 0xf1, 0x1f, 0xd5,
0x71, 0x8a, 0xde, 0x43, 0x29, 0x7e, 0x96, 0xd1, 0x5e, 0x92, 0xd4, 0x4c, 0xf4, 0xb4, 0xfd, 0x9b,
0xd0, 0x38, 0x45, 0x6f, 0xa1, 0x18, 0x39, 0xc4, 0x28, 0xf1, 0x6b, 0xc7, 0x73, 0xa3, 0xed, 0x2e,
0xe4, 0x70, 0x7a, 0xbc, 0xf5, 0x6e, 0xd3, 0x67, 0x45, 0xfe, 0x2d, 0x49, 0xe6, 0x33, 0xf9, 0xfc,
0x90, 0x97, 0xd0, 0xc3, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x87, 0x96, 0xee, 0x73, 0x83, 0x09,
0x00, 0x00,
}

@ -15,7 +15,7 @@ message ApplyPutResp {
string url = 1;
string putID = 2;
int64 fragmentSize = 3;
// int64 expirationTime = 4;
// int64 expirationTime = 4;
repeated string PutURLs = 5;
}
@ -27,6 +27,17 @@ message ConfirmPutResp {
string url = 1;
}
message GetUrlReq {
string name = 1; //
int64 expires = 2; // url
}
message GetUrlResp {
string url = 1;
int64 size = 2;
string hash = 3;
}
message GetPutReq {
string putID = 1;
}
@ -85,6 +96,7 @@ service third {
rpc ApplyPut(ApplyPutReq) returns(ApplyPutResp);
rpc GetPut(GetPutReq) returns(GetPutResp);
rpc ConfirmPut(ConfirmPutReq) returns(ConfirmPutResp);
rpc GetUrl(GetUrlReq) returns(GetUrlResp);
rpc GetSignalInvitationInfo(GetSignalInvitationInfoReq) returns(GetSignalInvitationInfoResp);
rpc GetSignalInvitationInfoStartApp(GetSignalInvitationInfoStartAppReq) returns(GetSignalInvitationInfoStartAppResp);

Loading…
Cancel
Save