/ pkg / aliyun / base.go
base.go
 1  package aliyun
 2  
 3  import (
 4  	"encoding/json"
 5  	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
 6  	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
 7  	"go.uber.org/zap"
 8  	"krillin-ai/config"
 9  	"krillin-ai/log"
10  )
11  
12  type TokenResult struct {
13  	ErrMsg string
14  	Token  struct {
15  		UserId     string
16  		Id         string
17  		ExpireTime int64
18  	}
19  }
20  
21  func CreateToken(ak, sk string) (string, error) {
22  	client, err := sdk.NewClientWithAccessKey("cn-shanghai", ak, sk)
23  	if err != nil {
24  		return "", err
25  	}
26  	if config.Conf.App.Proxy != "" {
27  		client.SetHttpProxy(config.Conf.App.Proxy)
28  	}
29  	request := requests.NewCommonRequest()
30  	request.Method = "POST"
31  	request.Domain = "nls-meta.cn-shanghai.aliyuncs.com"
32  	request.ApiName = "CreateToken"
33  	request.Version = "2019-02-28"
34  	response, err := client.ProcessCommonRequest(request)
35  	if err != nil {
36  		log.GetLogger().Error("aliyun sdk create token request error:", zap.Error(err))
37  		return "", err
38  	}
39  
40  	var tr TokenResult
41  	err = json.Unmarshal([]byte(response.GetHttpContentString()), &tr)
42  	if err != nil {
43  		log.GetLogger().Error("aliyun sdk json unmarshal error:", zap.Error(err))
44  		return "", err
45  	}
46  	return tr.Token.Id, nil
47  }