本文介紹如何使用SDK調用資料地址相關的方法。
建立資料地址
以下範例程式碼用於建立OSS類型的資料地址。
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
addressType := "oss"
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
regionId := "oss-cn-beijing"
bucket := "examplebucket"
prefix := "***/"
roleName := "rolename_xxxxx"
// 代理列表,無需關聯代理則不用指定。
agentList := "agent1,agent2,agent3"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
RegionId: ®ionId,
Bucket: &bucket,
Prefix: &prefix,
Role: &roleName,
AgentList: &agentList,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
以下範例程式碼用於建立Oss Inventory類型的資料地址。
重要
建立Oss Inventory類型的資料地址前需要先進行角色配置,並擷取到角色和清單角色 (rolename 和 invrolename)。
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
addressType := "ossinv"
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
prefix := "***/"
regionId := "oss-cn-beijing"
bucket := "examplebucket"
roleName := "rolename_xxxxx"
// 以下參數為清單相關資訊。
invLocation := "oss"
invBucket := "exampleinvbucket"
invRegionId := "oss-cn-beijing"
invRole := "invrolename_*******"
invPath := "dir/manifest.json"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
RegionId: ®ionId,
Bucket: &bucket,
Prefix: &prefix,
Role: &roleName,
InvLocation: &invLocation,
InvBucket: &invBucket,
InvRegionId: &invRegionId,
InvRole: &invRole,
InvPath: &invPath,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
以下範例程式碼用於建立通用清單 Inventory 類型的資料地址。
重要
建立 Inventory 類型的資料地址前需要先進行角色配置,並擷取到角色和清單角色 (rolename 和 invrolename)。
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
addressType := "inv"
// 當 addressType 為 inv時,dataType可選值為oss、s3、cos、obs、tos、qiniu、gcp、azure、ks3、bos、us3、uss。
dataType := "oss"
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
prefix := "***/"
regionId := "oss-cn-beijing"
bucket := "examplebucket"
roleName := "rolename_xxxxx"
// 以下參數為清單相關資訊。
invLocation := "oss"
invBucket := "exampleinvbucket"
invRegionId := "oss-cn-beijing"
invRole := "invrolename_*******"
invPath := "dir/manifest.json"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
DataType: &dataType,
RegionId: ®ionId,
Bucket: &bucket,
Prefix: &prefix,
Role: &roleName,
InvLocation: &invLocation,
InvBucket: &invBucket,
InvRegionId: &invRegionId,
InvRole: &invRole,
InvPath: &invPath,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
以下範例程式碼用於建立第三方源類型的資料地址。
s3
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
addressType := "s3"
accessId := "***"
accessSecret := "******"
domain := "s3.ap-southeast-1.amazonaws.com"
bucket := "examplebucket"
prefix := "***/"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
AccessId: &accessId,
AccessSecret: &accessSecret,
Domain: &domain,
Bucket: &bucket,
Prefix: &prefix,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
cos
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
addressType := "cos"
accessId := "***"
accessSecret := "******"
domain := "cos.ap-nanjing.myqcloud.com"
bucket := "examplebucket"
prefix := "***/"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
AccessId: &accessId,
AccessSecret: &accessSecret,
Domain: &domain,
Bucket: &bucket,
Prefix: &prefix,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
obs
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
addressType := "obs"
accessId := "***"
accessSecret := "******"
domain := "obs.cn-north-1.myhuaweicloud.com"
bucket := "examplebucket"
prefix := "***/"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
AccessId: &accessId,
AccessSecret: &accessSecret,
Domain: &domain,
Bucket: &bucket,
Prefix: &prefix,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
tos
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
addressType := "tos"
accessId := "***"
accessSecret := "******"
domain := "tos-s3-cn-beijing.volces.com"
bucket := "examplebucket"
prefix := "***/"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
AccessId: &accessId,
AccessSecret: &accessSecret,
Domain: &domain,
Bucket: &bucket,
Prefix: &prefix,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
qiniu
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
addressType := "qiniu"
accessId := "***"
accessSecret := "******"
// 網域名稱說明請參見https://developer.qiniu.com/kodo/8527/kodo-domain-name-management
domain := "http://xxxx.com"
bucket := "examplebucket"
prefix := "***/"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
AccessId: &accessId,
AccessSecret: &accessSecret,
Domain: &domain,
Bucket: &bucket,
Prefix: &prefix,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
gcp
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
addressType := "gcp"
accessId := "***"
accessSecret := "******"
// domain請跟根據實際值填寫。
domain := "Cloud Storage URI"
bucket := "examplebucket"
prefix := "***/"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
AccessId: &accessId,
AccessSecret: &accessSecret,
Domain: &domain,
Bucket: &bucket,
Prefix: &prefix,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
azure
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
addressType := "azure"
accessSecret := "******"
domain := "https://<儲存帳號>.blob.core.windows.net"
bucket := "examplebucket"
prefix := "***/"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
AccessSecret: &accessSecret,
Domain: &domain,
Bucket: &bucket,
Prefix: &prefix,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
ks3
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
addressType := "ks3"
accessId := "***"
accessSecret := "******"
domain := "ks3-cn-beijing.ksyuncs.com"
bucket := "examplebucket"
prefix := "***/"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
AccessId: &accessId,
AccessSecret: &accessSecret,
Domain: &domain,
Bucket: &bucket,
Prefix: &prefix,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
bos
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
addressType := "bos"
accessId := "***"
accessSecret := "******"
domain := "bj.bcebos.com"
bucket := "examplebucket"
prefix := "***/"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
AccessId: &accessId,
AccessSecret: &accessSecret,
Domain: &domain,
Bucket: &bucket,
Prefix: &prefix,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
ucloud s3
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
addressType := "us3"
accessId := "***"
accessSecret := "******"
domain := "cn-bj.ufileos.com"
bucket := "examplebucket"
prefix := "***/"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
AccessId: &accessId,
AccessSecret: &accessSecret,
Domain: &domain,
Bucket: &bucket,
Prefix: &prefix,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
youpai
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
addressType := "uss"
accessId := "***"
accessSecret := "******"
domain := "s3.api.upyun.com"
bucket := "examplebucket"
prefix := "***/"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
AccessId: &accessId,
AccessSecret: &accessSecret,
Domain: &domain,
Bucket: &bucket,
Prefix: &prefix,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
以下範例程式碼用於建立HTTP類型的資料地址。
重要
建立HTTP類型的資料地址前需要先進行角色配置,並擷取到清單角色(invrolename)。
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
addressType := "http"
invDomain := "oss-cn-beijing.aliyuncs.com"
invBucket := "exampleinvbucket"
invLocation := "oss"
invPath := "dir/manifest.json"
invRole := "invrolename_*******"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
InvDomain: &invDomain,
InvLocation: &invLocation,
InvPath: &invPath,
InvRole: &invRole,
InvBucket: &invBucket,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
以下範例程式碼用於建立LocalFS類型的資料地址,LocalFS類型資料地址必須關聯代理。
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
address := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
// 以下參數為待遷移資料相關資訊,請根據實際值填寫。
addressType := "local"
prefix := "/***/"
// 代理列表。
agentList := "agent1,agent2,agent3"
detail := mgwpackage.AddressDetail{
AddressType: &addressType,
Prefix: &prefix,
AgentList: &agentList,
}
_, err = client.CreateAddress(&userId, &mgwpackage.CreateAddressRequest{
ImportAddress: &mgwpackage.CreateAddressInfo{
Name: &address,
AddressDetail: &detail,
}})
if err != nil {
log.Printf("create address failed: %v", err)
return
}
}
擷取資料地址詳情
以下範例程式碼用於擷取資料地址的詳細資料。
package main
import (
"encoding/json"
"fmt"
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
addressName := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
resp, err := client.GetAddress(&userId, &addressName)
if err != nil {
log.Printf("get address failed: %v", err)
return
}
jsonBytes, err := json.Marshal(resp)
if err != nil {
log.Printf("covert failed: %v", err)
return
}
fmt.Println(string(jsonBytes))
}
正常返回樣本
{
"ImportAddress": {
"Owner": "test_owner",
"Name": "test_name",
"AddressDetail": {
"AddressType": "ossinv",
"Bucket": "test_bucket",
"Domain": "test_domain",
"Prefix": "test_prefix",
"AccessId": "test_access_id",
"AccessSecret": "test_secret_key",
"Role": "test_role",
"InvDomain": "test_inv_domain",
"InvBucket": "test_inv_bucket",
"InvAccessId": "test_inv_access_id",
"InvAccessSecret": "test_inv_secret_key",
"InvPath": "manifest.json",
"InvRole": "test_inv_role",
"InvLocation": "oss",
"AgentList": "agent1,agent2",
"RegionId": "test_region_id",
"InvRegionId": "test_inv_region_id"
},
"CreateTime": "2024-05-01T12:00:00.000Z",
"ModifyTime": "2024-05-01T12:00:00.000Z",
"VerifyTime": "2024-05-01T12:00:00.000Z",
"Version": "test_id",
"Tags": "K1:V1,K2:V2",
"Status": "avaliable",
"VerifyResult": {
"HttpCode": "400",
"ErrorCode": "InvalidArgument",
"ErrorMsg": "Invalid argument."
}
}
}校正資料地址
以下範例程式碼用於驗證指定的資料地址是否可用。
package main
import (
"encoding/json"
"fmt"
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
addressName := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
resp, err := client.VerifyAddress(&userId, &addressName)
if err != nil {
log.Printf("verify address failed: %v", err)
return
}
jsonBytes, err := json.Marshal(resp)
if err != nil {
log.Printf("covert failed: %v", err)
return
}
// 僅當status 欄位值為 available 時表示資料地址有效,其它任何值均表示無效。
fmt.Println(string(jsonBytes))
}
正常返回地址可用樣本
{
"VerifyAddressResponse": {
"Status": "available",
"VerifyTime": "2024-05-01T12:00:00.000Z",
"ErrorCode": "",
"ErrorMessage": ""
}
}正常返回地址不可用樣本
{
"VerifyAddressResponse": {
"Status": "unavailable",
"VerifyTime": "2024-05-01T12:00:00.000Z",
"ErrorCode": "400",
"ErrorMessage": "Invalid argument."
}
}列舉資料地址
以下範例程式碼用於列舉帳號下所有資料地址資訊。
package main
import (
"encoding/json"
"fmt"
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
// 根據實際填寫marker,count。
count := int32(1)
marker := ""
resp, err := client.ListAddress(&userId, &mgwpackage.ListAddressRequest{
Count: &count, Marker: &marker,
})
if err != nil {
log.Printf("list address failed: %v", err)
return
}
jsonBytes, err := json.Marshal(resp)
if err != nil {
log.Printf("covert failed: %v", err)
return
}
// 僅當status 欄位值為 available 時表示資料地址有效,其它任何值均表示無效。
fmt.Println(string(jsonBytes))
}
正常返回樣本
{
"ImportAddressList": {
"Truncated": true,
"NextMarker": "test_marker",
"ImportAddress": [
{
"Owner": "test_owner",
"Name": "test_name",
"AddressDetail": {
"AddressType": "ossinv",
"Bucket": "test_bucket",
"Domain": "test_domain",
"Prefix": "test_prefix",
"AccessId": "test_access_id",
"AccessSecret": "test_secret_key",
"Role": "test_role",
"InvDomain": "test_inv_domain",
"InvBucket": "test_inv_bucket",
"InvAccessId": "test_inv_access_id",
"InvAccessSecret": "test_inv_secret_key",
"InvPath": "manifest.json",
"InvRole": "test_inv_role",
"InvLocation": "oss",
"AgentList": "agent1,agent2",
"RegionId": "test_region_id",
"InvRegionId": "test_inv_region_id"
},
"CreateTime": "2024-05-01T12:00:00.000Z",
"ModifyTime": "2024-05-01T12:00:00.000Z",
"VerifyTime": "2024-05-01T12:00:00.000Z",
"Version": "test_id",
"Tags": "K1:V1,K2:V2",
"Status": "avaliable",
"VerifyResult": {
"HttpCode": "400",
"ErrorCode": "InvalidArgument",
"ErrorMsg": "Invalid argument."
}
}
]
}
}更新資料地址
以下範例程式碼用於代理需要擴容或縮容的情境,更新指定資料地址關聯的代理。
重要
至少需要填寫一個代理名稱,並且代理的通道不允許更改,否則更新失敗。
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
addressName := "exampleaddress"
// 填寫代理名稱列表,以,分隔, 不可為空白。
agentList := "exampleagent1,exampleagent2,exampleagent3..."
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
_, err = client.UpdateAddress(&userId, &addressName, &mgwpackage.UpdateAddressRequest{
ImportAddress: &mgwpackage.UpdateAddressInfo{
AgentList: &agentList,
},
})
if err != nil {
log.Printf("update address failed: %v", err)
return
}
}
刪除資料地址
以下範例程式碼用於刪除指定資料地址。
package main
import (
"log"
"os"
openapipackage "github.com/alibabacloud-go/darabonba-openapi/v2/client"
mgwpackage "github.com/alibabacloud-go/hcs-mgw-20240626/client"
)
/** 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。*/
var accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
var accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
/** 填寫主帳號ID。*/
var userId = "11470***876***55"
func main() {
// 這裡以北京地區為例。
endpoint := "cn-beijing.mgw.aliyuncs.com"
// 支援 HTTPS、HTTP, 未指定時預設採用 HTTPs。
protocol := "http"
// 填寫資料位址名稱。
addressName := "exampleaddress"
config := openapipackage.Config{
AccessKeyId: &accessKeyId,
AccessKeySecret: &accessKeySecret,
Endpoint: &endpoint,
Protocol: &protocol,
}
client, err := mgwpackage.NewClient(&config)
if err != nil {
log.Printf("create client failed: %v", err)
return
}
_, err = client.DeleteAddress(&userId, &addressName)
if err != nil {
log.Printf("delete address failed: %v", err)
return
}
}
後續步驟
資料地址建立後,您可以選擇繼續執行建立任務操作,詳情請參見 任務。