创建指定对象列表文件迁移任务
引导式阅读
Go
创建指定对象列表文件迁移任务
作者
C***
上架时间
2023-11-14 02:54:20

版本说明

本示例基于华为云SDK V3.0版本开发。

功能介绍

华为云提供了对象存储迁移服务端SDK,您可以直接集成服务端SDK来调用对象存储迁移的相关API,从而实现对对象存储迁移服务的快速操作。 该示例展示了如何通过java版SDK创建指定对象列表的迁移任务。 任务创建完成后,会将对象列表文件中的所有对象迁移到华为云obs桶中。

前置条件

  • 1、获取华为云开发工具包(SDK),您也可以查看安装JAVA SDK。
  • 2、要使用华为云 Java SDK,您需要拥有华为云账号以及该账号对应的 Access Key(AK)和 Secret Access Key(SK)。
  • 3、要创建迁移任务,您还需要拥有源端账号和目的端账号对应的 Access Key(AK)和 Secret Access Key(SK)。
  • 4、将待迁移的源端对象名称写入对象列表文件,并将生成的对象列表文件放在华为云obs桶中,对象存储迁移服务将会迁移指定对象列表文件中的所有对象。
  • 5、华为云 Java SDK 支持 Java JDK 1.8 及其以上版本。

创建指定对象列表文件迁移任务

// 创建OmsClient实例 // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份认证为例,运行示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 String ak = System.getenv("HUAWEICLOUD_SDK_AK"); String sk = System.getenv("HUAWEICLOUD_SDK_SK"); BasicCredentials credentials = new BasicCredentials().withAk(ak) .withSk(sk); OmsClient omsClient = OmsClient.newBuilder() .withCredential(credentials) .withRegion(OmsRegion.CN_NORTH_4) // 设置目的端region .build(); // 创建指定对象列表文件的迁移任务 try { CreateTaskRequest request = new CreateTaskRequest(); CreateTaskReq body = new CreateTaskReq(); // 1、设置任务类型为prefix body.setTaskType(CreateTaskReq.TaskTypeEnum.PREFIX); // 2、设置源端参数 SrcNodeReq srcNode = new SrcNodeReq(); srcNode.setBucket("src bucket name"); srcNode.setRegion("src region"); // 可选值有AWS、Azure、Aliyun、Tencent、HuaweiCloud、QingCloud、KingsoftCloud、Baidu、Qiniu或者UCloud。默认值为Aliyun。 srcNode.setCloudType("src cloud type"); srcNode.setAk("src accessKey"); srcNode.setSk("src secretKey"); ListFile listFile = new ListFile(); // 对象列表文件所在桶名,需要和目的端桶在同一个region listFile.setObsBucket("name of the bucket where the object list file resides"); // 对象列表文件的桶内路径 listFile.setListFileKey("object list file path"); srcNode.setListFile(listFile); body.setSrcNode(srcNode); // 3、设置目的端参数 DstNodeReq dstNode = new DstNodeReq(); dstNode.setBucket("migration src bucket name"); dstNode.setRegion("dst region"); dstNode.setAk("dst accessKey"); dstNode.setSk("dst secretKey"); body.setDstNode(dstNode); request.setBody(body); CreateTaskResponse response = omsClient.createTask(request); logger.info(response.toString()); } catch (ClientRequestException e) { logger.error(String.valueOf(e.getHttpStatusCode())); logger.error(e.toString()); } catch (ServerResponseException e) { logger.error(String.valueOf(e.getHttpStatusCode())); logger.error(e.getMessage()); }

注意

  • 示例只传入了必选参数,需要设置其他高级参数可参考API文档。
  • 请确保列表文件所在桶与目的端桶处于同一区域,否则后续将无法选择对象列表文件。
  • 对象列表文件大小不能超过1GB。
  • 对象列表文件必须是“.txt”类型的文件,并且该文件元数据中的“ContentType”只能为:“text/plain”。
  • 对象列表文件必须是UTF-8无BOM格式编码格式。
  • 对象列表文件中每行只能包含一个对象名称,并且对象名称使用URL Encode编码。
  • 对象列表文件中每行不要添加无效空格,否则会将空格作为对象名,导致迁移失败。
  • 对象列表文件中每行长度不要超过65535,否则会导致迁移失败。
  • 对象列表文件的元数据中不能设置“ContentEncoding”,否则会导致迁移失败。
  • 对象列表文件如果是归档数据,迁移前需要先手动恢复,对象存储迁移服务才能访问和获取。

参考

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

修订记录

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