Commit 9b790c8b authored by Bess严根旺's avatar Bess严根旺

parent 0421eb16
......@@ -24,7 +24,7 @@ func recoverPanicToPro() {
// 执行文件转换
func DoAliData() {
defer recoverPanicToPro()
fmt.Println("开始刷新请求...")
fmt.Println("开始刷新执行文件转换请求...")
ctx := context.Background()
// 启动一个协程来执行定时任务 20秒一次
ticker := time.NewTicker(10 * time.Second)
......
......@@ -10,6 +10,7 @@ import (
util "github.com/alibabacloud-go/tea-utils/v2/service"
"github.com/alibabacloud-go/tea/tea"
"gitlab.galaxy-immi.com/Backend-group/go-com/third/log"
"gitlab.galaxy-immi.com/Backend-group/go-com/third/oss"
"net/url"
"strings"
)
......@@ -40,20 +41,19 @@ type Conversion struct {
Bucket string
}
// GetBucket 获取bucket信息
func (o *Conversion) GetBucket(isPrivate bool) string {
/*config, iniErr := ini.Load("domain/conf/app.ini")
if iniErr != nil {
log.Error("Fail to read file: %v")
os.Exit(1)
}
bucketPrivate := config.Section("AliYun").Key("bucketPrivate").String()
bucketPub := config.Section("AliYun").Key("bucketPub").String()*/
// 获取bucket信息
func (o *Conversion) GetBucket(isPrivate bool, sourceURI string) string {
/*
ossBackName := "test-bucket-v1"
if !isPrivate {
ossBackName = "test-bucket-v1-pub"
}
*/
ossBackName, _, _ := oss.ParseBucketUrl(sourceURI)
if isPrivate {
return "oss://" + "test-bucket-v1"
return "oss://" + ossBackName
}
return "oss://" + "test-bucket-v1-pub"
return "oss://" + ossBackName
}
type DoConversionRequest struct {
......@@ -171,10 +171,8 @@ func (o *Conversion) Conversion(arg *DoConversionRequest) (map[string]interface{
if checkErr != nil {
return ret, checkErr
}
client := NewConversion()
params := client.CreateApiInfo()
sourceParseUrl, parseErr := url.Parse(arg.SourceURI)
if parseErr != nil {
return ret, parseErr
......@@ -183,11 +181,12 @@ func (o *Conversion) Conversion(arg *DoConversionRequest) (map[string]interface{
if parseTargetErr != nil {
return ret, parseTargetErr
}
// query params
queries := map[string]interface{}{}
queries["ProjectName"] = arg.ProjectName
queries["SourceURI"] = o.GetBucket(arg.IsPrivate) + sourceParseUrl.Path
queries["TargetURI"] = o.GetBucket(arg.IsPrivate) + targetParseUrl.Path
queries["SourceURI"] = o.GetBucket(arg.IsPrivate, arg.SourceURI) + sourceParseUrl.Path
queries["TargetURI"] = o.GetBucket(arg.IsPrivate, arg.SourceURI) + targetParseUrl.Path
queries["SourceType"] = arg.SourceType
queries["TargetType"] = arg.TargetType
runtime := &util.RuntimeOptions{}
......
......@@ -8,6 +8,7 @@ import (
"mime/multipart"
"net/http"
"os"
"strings"
"time"
)
......@@ -89,3 +90,110 @@ func (b *ossBucket) UploadFile(filePath string) (string, error) {
return response["data"].(string), nil
}
type BucketMap string
const (
GalaxyImmiCdn BucketMap = `galaxy-immi-cdn`
GalaxyImmiMp BucketMap = `galaxy-immi-mp`
GalaxyImmi BucketMap = `galaxy-immi`
GalaxyHkJoin BucketMap = `galaxy-hkjoin`
GalaxyDwp BucketMap = `galaxy-dwp`
GalaxyFileCvt BucketMap = `galaxy-filecvt`
YinHeTest BucketMap = `yinhe-test`
GalaxyFile BucketMap = `galaxy-file`
GalaxySmartingBucket BucketMap = `galaxy-smartwriting`
GalaxyDwp2Bucket BucketMap = `galaxy-dwp2`
TestBucketV1 BucketMap = `test-bucket-v1`
TestBucketV1pub BucketMap = `test-bucket-v1-pub`
GalaxyDiy BucketMap = `galaxy-diy`
HkOss BucketMap = `test-hk-bucket`
HkOssProd BucketMap = `prod-hk-bucket`
ProdBucketOss BucketMap = `prod-bucket-v1`
ProdPubBucketOss BucketMap = `prod-bucket-v1-pub`
)
func GetBucketMaps() []BucketMap {
return []BucketMap{
GalaxyImmiCdn, GalaxyImmiMp, GalaxyImmi, GalaxyHkJoin, GalaxyDwp, GalaxyFileCvt, YinHeTest, GalaxyFile, GalaxyDwp2Bucket, GalaxySmartingBucket, TestBucketV1, TestBucketV1pub, GalaxyDiy, HkOss, HkOssProd, ProdPubBucketOss, ProdBucketOss,
}
}
func ParseBucketUrl(objectUrl string) (string, string, string) {
newUrl := strings.ReplaceAll(strings.ReplaceAll(objectUrl, `https://`, ``), `http://`, ``)
objectBucket := strings.Split(newUrl, `.`)[0]
var realObjectUrl, realBucket, endPoint string
buckets := GetBucketMaps()
for _, bucket := range buckets {
for _, host := range bucket.Hosts() {
if strings.Contains(objectUrl, host) || bucket.String() == objectBucket {
var result []string
if strings.Contains(objectUrl, `oss-cn-shenzhen.aliyuncs.com`) {
result = strings.Split(objectUrl, `oss-cn-shenzhen.aliyuncs.com`)
} else {
result = strings.Split(objectUrl, host)
}
if len(result) != 2 {
continue
}
realObjectUrl = strings.TrimLeft(result[1], `/`)
realBucket = bucket.String()
endPoint = host
goto End
}
}
}
End:
index := strings.Index(realObjectUrl, "?")
if index >= 0 {
realObjectUrl = realObjectUrl[:index]
}
return realBucket, realObjectUrl, endPoint
}
func (b BucketMap) Hosts() []string {
switch b {
case TestBucketV1:
return []string{`test-cdn.galaxy-immi.com`}
case TestBucketV1pub:
return []string{`test-cdn-pub.galaxy-immi.com`}
case GalaxyImmiCdn:
return []string{`cdnfile.galaxy-immi.com`}
case GalaxyImmiMp:
return []string{`upload.cdn.galaxy-immi.com`, `upload-cdn.galaxy-immi.com`}
case GalaxyImmi:
return []string{`cache.galaxy-immi.com`}
case GalaxyHkJoin:
return []string{`galaxy-hkjoin-cdn.galaxy-immi.com`}
case GalaxyDwp:
return []string{`galaxy-dwp-cdn.galaxy-immi.com`}
case GalaxyFileCvt:
return []string{`galaxy-immi-mp.oss-cn-shenzhen.aliyuncs.com`}
case YinHeTest:
return []string{`yinhe-test.oss-cn-shenzhen.aliyuncs.com`}
case GalaxyFile:
return []string{`file.galaxy-immi.com`}
case GalaxySmartingBucket:
return []string{`galaxy-smartwriting.oss-cn-shenzhen.aliyuncs.com`}
case GalaxyDwp2Bucket:
return []string{`galaxy-dwp2.oss-cn-shenzhen.aliyuncs.com`}
case GalaxyDiy:
return []string{`galaxy-diy.oss-cn-shenzhen.aliyuncs.com`}
case HkOss:
return []string{`test-hk-bucket.oss-cn-hongkong.aliyuncs.com`}
case HkOssProd:
return []string{`prod-hk-bucket.oss-cn-hongkong.aliyuncs.com`}
case ProdBucketOss:
return []string{`prod-cdn.galaxy-immi.com`}
case ProdPubBucketOss:
return []string{`prod-cdn-pub.galaxy-immi.com`}
default:
return nil
}
}
func (b BucketMap) String() string {
return string(b)
}
......@@ -19,7 +19,6 @@ require (
google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094
google.golang.org/grpc v1.64.0
google.golang.org/protobuf v1.34.2
gopkg.in/ini.v1 v1.67.0
)
require (
......@@ -36,6 +35,7 @@ require (
github.com/aliyun/alibaba-cloud-sdk-go v1.62.724 // indirect
github.com/aliyun/alibabacloud-dkms-gcs-go-sdk v0.2.2 // indirect
github.com/aliyun/alibabacloud-dkms-transfer-go-sdk v0.1.7 // indirect
github.com/aliyun/aliyun-oss-go-sdk v3.0.1+incompatible // indirect
github.com/aliyun/credentials-go v1.3.1 // indirect
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394 // indirect
......@@ -93,6 +93,7 @@ require (
golang.org/x/text v0.16.0 // indirect
golang.org/x/time v0.1.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
......
......@@ -98,6 +98,8 @@ github.com/aliyun/alibabacloud-dkms-gcs-go-sdk v0.2.2 h1:rWkH6D2XlXb/Y+tNAQROxBz
github.com/aliyun/alibabacloud-dkms-gcs-go-sdk v0.2.2/go.mod h1:GDtq+Kw+v0fO+j5BrrWiUHbBq7L+hfpzpPfXKOZMFE0=
github.com/aliyun/alibabacloud-dkms-transfer-go-sdk v0.1.7 h1:olLiPI2iM8Hqq6vKnSxpM3awCrm9/BeOgHpzQkOYnI4=
github.com/aliyun/alibabacloud-dkms-transfer-go-sdk v0.1.7/go.mod h1:oDg1j4kFxnhgftaiLJABkGeSvuEvSF5Lo6UmRAMruX4=
github.com/aliyun/aliyun-oss-go-sdk v3.0.1+incompatible h1:so4m5rRA32Tc5GgKg/5gKUu0CRsYmVO3ThMP6T3CwLc=
github.com/aliyun/aliyun-oss-go-sdk v3.0.1+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
github.com/aliyun/credentials-go v1.1.2/go.mod h1:ozcZaMR5kLM7pwtCMEpVmQ242suV6qTJya2bDq4X1Tw=
github.com/aliyun/credentials-go v1.3.1 h1:uq/0v7kWrxmoLGpqjx7vtQ/s03f0zR//0br/xWDTE28=
github.com/aliyun/credentials-go v1.3.1/go.mod h1:8jKYhQuDawt8x2+fusqa1Y6mPxemTsBEN04dgcAcYz0=
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment