Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
doc-service
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
eifel邓鹏飞
doc-service
Commits
9b790c8b
Commit
9b790c8b
authored
Sep 26, 2024
by
Bess严根旺
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
桶
parent
0421eb16
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
128 additions
and
18 deletions
+128
-18
convert_command.go
console/convert_command.go
+1
-1
convert_reposity.go
domain/repository/convert_reposity.go
+15
-16
bucket.go
domain/repository/osscli/bucket.go
+108
-0
go.mod
go.mod
+2
-1
go.sum
go.sum
+2
-0
No files found.
console/convert_command.go
View file @
9b790c8b
...
...
@@ -24,7 +24,7 @@ func recoverPanicToPro() {
// 执行文件转换
func
DoAliData
()
{
defer
recoverPanicToPro
()
fmt
.
Println
(
"开始刷新请求..."
)
fmt
.
Println
(
"开始刷新
执行文件转换
请求..."
)
ctx
:=
context
.
Background
()
// 启动一个协程来执行定时任务 20秒一次
ticker
:=
time
.
NewTicker
(
10
*
time
.
Second
)
...
...
domain/repository/convert_reposity.go
View file @
9b790c8b
...
...
@@ -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
{}
...
...
domain/repository/osscli/bucket.go
View file @
9b790c8b
...
...
@@ -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
)
}
go.mod
View file @
9b790c8b
...
...
@@ -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
...
...
go.sum
View file @
9b790c8b
...
...
@@ -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=
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment