创建指定前缀迁移任务
引导式阅读
Go
创建指定前缀迁移任务
作者
C***
上架时间
2023-11-14 02:27:51

版本说明

本示例基于华为云SDK开发。

功能介绍

华为云提供了对象存储迁移服务端SDK,您可以直接集成服务端SDK来调用对象存储迁移的相关API,从而实现对对象存储迁移服务的快速操作。该示例展示了如何通过Go版SDK创建指定前缀的迁移任务。 任务创建完成后,会通过前缀过滤出所有对象路径匹配该前缀的对象,然后迁移到华为云obs桶中。

前置条件

  • 1、获取华为云开发工具包(SDK),您也可以查看安装Go SDK。
  • 2、要使用华为云 Go SDK,您需要拥有华为云账号以及该账号对应的 Access Key(AK)和 Secret Access Key(SK)。
  • 3、要创建迁移任务,您还需要拥有源端账号和目的端账号对应的 Access Key(AK)和 Secret Access Key(SK)。
  • 4、华为云 Go SDK 支持 Go 1.16 及其以上版本。

创建指定前缀迁移任务

package main import ( omsRegion "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/oms/v2/region" "fmt" "os" "log" coreBasic "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" oms "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/oms/v2" omsModel "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/oms/v2/model" ) type OmsTaskCreatePrefixDemo struct{} func NewOmsTaskCreatePrefixDemoDefault() OmsTaskCreatePrefixDemo { o := OmsTaskCreatePrefixDemo{} return o } func main() { // 创建OmsClient实例 // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak := os.Getenv("HUAWEICLOUD_SDK_AK") sk := os.Getenv("HUAWEICLOUD_SDK_SK") credentials := coreBasic.NewCredentialsBuilder().WithAk(ak).WithSk(sk).Build() omsClient := *oms.NewOmsClient(oms.OmsClientBuilder(). WithCredential(credentials). WithRegion(omsRegion.CN_NORTH_4). Build()) // 创建指定前缀的任务 request := omsModel.CreateTaskRequest{} body := omsModel.CreateTaskReq{} // 1、设置任务类型为prefix createTaskReqTaskTypeParam := omsModel.GetCreateTaskReqTaskTypeEnum().PREFIX body.TaskType = &createTaskReqTaskTypeParam // 2、设置源端参数 srcNode := omsModel.SrcNodeReq{} srcNodeReqBucketParam := "src bucket name" srcNode.Bucket = &srcNodeReqBucketParam srcNodeReqRegionParam := "src region" srcNode.Region = &srcNodeReqRegionParam // 可选值有AWS、Azure、Aliyun、Tencent、HuaweiCloud、QingCloud、KingsoftCloud、Baidu、Qiniu或者UCloud。默认值为Aliyun。 srcNodeReqCloudTypeParam := "src cloud type" srcNode.CloudType = &srcNodeReqCloudTypeParam srcNodeReqAkParam := "src accessKey" srcNode.Ak = &srcNodeReqAkParam srcNodeReqSkParam := "src secretKey" srcNode.Sk = &srcNodeReqSkParam objectKeys := make([]string, 0) // 指定要迁移的前缀。整桶迁移prefix设置为""; objectKeys = append(objectKeys, "prefix") srcNode.ObjectKey = &objectKeys body.SrcNode = &srcNode // 3、设置目的端参数 dstNode := omsModel.DstNodeReq{} dstNode.Bucket = "dst bucket name" dstNode.Region = "dst region" dstNode.Ak = "dst accessKey" dstNode.Sk = "dst secretKey" body.DstNode = &dstNode request.Body = &body listTasksResponse, err := omsClient.CreateTask(&request) if err != nil { fmt.Println(err) return } log.Println(listTasksResponse.String()) }

注意

  • 示例只传入了必选参数,需要设置其他高级参数可参考API文档。
  • 如果待迁移的整桶数据超过3TB或者对象个数超过500万,建议拆分成多个前缀,创建多个任务。

参考

更多信息请参考OMS对象存储迁移服务

修订记录

发布日期 文档版本 修订说明
2021-05-21 1.0 文档首次发布