创建指定对象列表文件迁移任务
Copied!
// 创建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”,否则会导致迁移失败。
- 对象列表文件如果是归档数据,迁移前需要先手动恢复,对象存储迁移服务才能访问和获取。
版本说明
本示例基于华为云SDK V3.0版本开发。
功能介绍
华为云提供了对象存储迁移服务端SDK,您可以直接集成服务端SDK来调用对象存储迁移的相关API,从而实现对对象存储迁移服务的快速操作。 该示例展示了如何通过java版SDK创建指定对象列表的迁移任务。 任务创建完成后,会将对象列表文件中的所有对象迁移到华为云obs桶中。
前置条件
创建指定对象列表文件迁移任务
注意
:参考
更多信息请参考OMS对象存储迁移服务
修订记录