修改上传版本呢目录
This commit is contained in:
@@ -2,13 +2,14 @@ package cmd
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/ayflying/utility_go/package/s3"
|
||||
"github.com/ayflying/utility_go/pkg"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/gogf/gf/v2/net/ghttp"
|
||||
"github.com/gogf/gf/v2/os/gcfg"
|
||||
"github.com/gogf/gf/v2/os/gcmd"
|
||||
"github.com/gogf/gf/v2/os/gctx"
|
||||
"os"
|
||||
"path"
|
||||
"time"
|
||||
)
|
||||
|
||||
@@ -17,6 +18,8 @@ type serverCfg struct {
|
||||
Address string `json:"address" dc:"服务地址"`
|
||||
Prod bool `json:"prod" dc:"是否生产环境"`
|
||||
S3 string `json:"s3" dc:"使用哪个对象储存中转"`
|
||||
Arch string `json:"arch" dc:"架构"`
|
||||
System string `json:"system" dc:"系统"`
|
||||
}
|
||||
|
||||
type UpdateReq struct {
|
||||
@@ -24,8 +27,6 @@ type UpdateReq struct {
|
||||
FileUrl string `json:"file_url" dc:"文件地址"`
|
||||
}
|
||||
|
||||
var s3Mod *s3.Mod
|
||||
|
||||
var (
|
||||
Update = gcmd.Command{
|
||||
Name: "update",
|
||||
@@ -36,9 +37,30 @@ var (
|
||||
g.Log().Info(ctx, "准备上传更新文件")
|
||||
//加载编辑配置文件
|
||||
g.Cfg("hack").GetAdapter().(*gcfg.AdapterFile).SetFileName("hack/config.yaml")
|
||||
//获取文件名
|
||||
getFileName, err := g.Cfg("hack").Get(ctx, "gfcli.build.name")
|
||||
Filename := getFileName.String()
|
||||
|
||||
////获取架构
|
||||
//getArch, err := g.Cfg("hack").Get(ctx, "gfcli.build.arch")
|
||||
//Arch := getArch.String()
|
||||
//if Arch == "" {
|
||||
// Arch = "amd64"
|
||||
//}
|
||||
//
|
||||
////获取操作系统
|
||||
//getSystem, err := g.Cfg("hack").Get(ctx, "gfcli.build.system")
|
||||
//System := getSystem.String()
|
||||
//
|
||||
//if System == "" {
|
||||
// System = "linux"
|
||||
//}
|
||||
//var systemName = System + "_" + Arch
|
||||
|
||||
//获取版本号
|
||||
getVersion, err := g.Cfg("hack").Get(ctx, "gfcli.build.version")
|
||||
Version := getVersion.String()
|
||||
|
||||
var list []*serverCfg
|
||||
serverList := g.Cfg().MustGet(ctx, "server_list")
|
||||
serverList.Scan(&list)
|
||||
@@ -59,7 +81,9 @@ var (
|
||||
g.Dump("需要更新的服务器", list)
|
||||
//获取上传链接
|
||||
var url = make(map[string]string)
|
||||
filename := "linux_amd64/" + Filename
|
||||
var system = make(map[string]string)
|
||||
//filename := "linux_amd64/" + Filename
|
||||
//filename := path.Join(Version, "linux_amd64", Filename)
|
||||
|
||||
client := g.Client()
|
||||
client.SetTimeout(time.Minute)
|
||||
@@ -73,13 +97,29 @@ var (
|
||||
}
|
||||
|
||||
//查询当前上传地址是否存在
|
||||
if _, ok := url[v.S3]; !ok {
|
||||
_, ok2 := system[v.System+v.Arch]
|
||||
if _, ok := url[v.S3]; !ok || !ok2 {
|
||||
|
||||
var systemName = "linux_amd64"
|
||||
if v.Arch != "" && v.System != "" {
|
||||
systemName = v.System + "_" + v.Arch
|
||||
}
|
||||
var filename = path.Join(Version, systemName, Filename)
|
||||
g.Log().Debugf(ctx, "当前上传文件:"+filename)
|
||||
|
||||
url[v.S3], err = UploadS3(v.S3, filename)
|
||||
if err != nil {
|
||||
g.Log().Error(ctx, err)
|
||||
return
|
||||
}
|
||||
system[v.System+v.Arch] = filename
|
||||
|
||||
if err != nil {
|
||||
g.Log().Error(ctx, err)
|
||||
return
|
||||
}
|
||||
}
|
||||
continue
|
||||
|
||||
g.Log().Debugf(ctx, "准备同步服务器:%v,url=%v", v.Name, address+"/callback/update")
|
||||
get, err := client.Post(ctx, address+"/callback/update", &UpdateReq{
|
||||
@@ -107,9 +147,13 @@ var (
|
||||
func UploadS3(typ string, filename string) (res string, err error) {
|
||||
//updateServerS3Name, _ := g.Config().Get(ctx, "update_server_s3_name")
|
||||
|
||||
s3Mod = s3.New(typ)
|
||||
var s3Mod = pkg.S3(typ)
|
||||
bucketName := s3Mod.GetCfg().BucketName
|
||||
obj, err := os.Open(filename)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
defer obj.Close()
|
||||
ff, err := obj.Stat()
|
||||
_, err = s3Mod.PutObject(obj, filename, bucketName, ff.Size())
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user