阿里云OSS迁移至华为云OBS,Java整合华为云OMS实现文件的自动批量迁移功能

华为云OBS

华为云对象存储服务(Object Storage Service,简称OBS)是华为云提供的一个高可靠、高安全、高可扩展的云存储服务。它允许用户在云上存储和管理海量数据,如图片、视频、文档、备份文件等。OBS 可以用作数据备份、文件共享、大数据存储、以及静态网站托管等多种用途。

OBS 的主要特点包括:

  1. 高可靠性:OBS 提供了 99.9999999999%(12 个 9)的数据持久性,通过多副本存储保障数据安全。
  2. 高安全性:提供多种访问控制策略和权限管理机制,支持加密传输和加密存储,保障数据的隐私性和安全性。
  3. 高性能:OBS 支持大数据量的高效传输和处理,具备低延迟和高吞吐量的特点。
  4. 自动扩展:存储空间可以根据需求动态扩展,满足不同业务场景下的存储需求。
  5. 多协议支持:支持 HTTP/HTTPS 协议,通过 RESTful API 进行数据操作,并兼容 S3 API。

常见的使用场景:

  • 数据备份与恢复:企业可以将重要数据备份到 OBS,并在需要时进行恢复。
  • 静态网站托管:OBS 可以直接托管静态网站,提供高可用的访问。
  • 大数据分析:OBS 支持大规模数据的存储,便于大数据分析和处理。
  • 视频点播和直播:可以将大量视频文件存储在 OBS 中,并通过内容分发网络(CDN)加速用户访问。

阿里云OSS

阿里云对象存储服务(Object Storage Service,简称OSS)是阿里云提供的一种海量、安全、低成本、高可靠的云存储服务。与华为云的OBS类似,OSS 用于存储和管理各种类型的非结构化数据,例如图片、视频、音频、日志文件、备份数据等。

OSS 的主要特点包括:

  1. 高可靠性:OSS 提供 99.9999999999%(12 个 9)的数据持久性,通过多副本机制和数据校验来保证数据的高可靠性。
  2. 高安全性:支持多种数据加密方式,包括服务端加密和客户端加密,提供访问控制策略(ACL)和权限管理来保护数据安全。
  3. 弹性扩展:无需预估存储容量,可以根据需要自动扩展存储空间,适应业务增长。
  4. 多种存储类型:提供标准存储、低频访问存储、归档存储和冷归档存储,用户可以根据数据的访问频率和生命周期选择合适的存储类型,以降低成本。
  5. 全球加速:通过阿里云全球加速服务,可以让 OSS 中的数据在全球范围内实现快速访问。
  6. 多协议支持:OSS 提供丰富的 API,支持通过 RESTful API 和 SDK 进行数据操作,并且兼容 Amazon S3 API。

常见的使用场景:

  • 静态资源托管:OSS 常用于存储和分发网站的静态资源,如图片、CSS、JS 文件等,配合 CDN 可以加速全球访问。
  • 备份和恢复:可以将企业的核心数据备份到 OSS,并且支持多种备份和恢复方案。
  • 大数据分析:OSS 作为大数据存储的核心,支持与阿里云大数据分析工具的无缝集成,便于数据分析处理。
  • 视频点播和直播:OSS 可以存储和分发大规模的视频文件,支持点播和直播场景。

华为云OMS

华为云OMS(Object Management Service,对象管理服务)是华为云提供的一项与对象存储(OBS)紧密集成的服务。OMS 主要用于实现跨云、跨区域的数据迁移和同步,帮助用户将数据从本地存储、其他云平台或华为云的一个区域迁移到另一个区域的对象存储中。

OMS 的主要功能和特点包括:

  1. 跨云迁移:OMS 支持将数据从其他云服务提供商(如 Amazon S3、Azure Blob Storage 等)迁移到华为云的 OBS,也可以从华为云的 OBS 迁移到其他云平台。
  2. 跨区域同步:OMS 可以在华为云不同区域之间实现数据的实时或定时同步,帮助用户在全球范围内管理和分发数据。
  3. 数据增量同步:OMS 支持增量同步功能,只同步变化的数据,节省带宽和时间成本。
  4. 多种迁移方式:OMS 支持一次性迁移和定期同步两种方式,用户可以根据需求选择合适的方式来管理数据迁移。
  5. 高安全性:OMS 在数据迁移和同步过程中提供加密传输,确保数据在网络传输中的安全性。
  6. 简单易用:通过华为云管理控制台,用户可以直观地配置迁移任务,并监控迁移进度。

常见的使用场景:

  • 云间迁移:企业需要将存储在其他云服务提供商的数据迁移到华为云的场景,可以通过 OMS 实现快速、可靠的迁移。
  • 跨区域灾备:为确保业务连续性,企业可以使用 OMS 将数据同步到不同的区域,作为灾难恢复的备份。
  • 全球数据分发:在全球各地有业务需求的企业,可以通过 OMS 实现数据在全球多个区域的同步,提升数据访问速度和用户体验。

引入依赖

//华为云OBS
implementation 'com.huaweicloud.sdk:huaweicloud-sdk-obs:3.1.109'
//华为云OMS
implementation 'com.huaweicloud.sdk:huaweicloud-sdk-oms:3.1.109'

实现代码:

package com.fdw.algorithm.HWCloud;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.oms.v2.region.OmsRegion;
import com.huaweicloud.sdk.oms.v2.*;
import com.huaweicloud.sdk.oms.v2.model.*;

import java.util.List;
import java.util.ArrayList;

public class CreateTaskSolution {

    public static void main(String[] args) {
        //迁移方式,object
        String taskType = "object";

        //源对象存储,阿里云OSS
        String srcCloudType = "Aliyun";
        String srcAK = "LTAI5tH144yw7Ybpn4g7i3hi";
        String srcSK = "Nu3k6qMXgbHBkoLj2QBALmNqT3pzmI";
        String srcBucket = "qcy-test-1";
        String srcRegion = "cn-beijing";

        //目标对象存储,华为云OBS
        String tarAK = "VI8ANMNGWZUWXJV8WMKW";
        String tarSK = "hIAb2jwgPEHTYknEMLml5DRqGSMLxRY66cHzd8D2";
        String tarBucket = "qcytest1";
        String tarRegion = "cn-north-4";
        String tarPerfix = "fdw/";

        //生成client
        ICredential auth = new BasicCredentials()
                .withAk(tarAK)
                .withSk(tarSK);
        OmsClient client = OmsClient.newBuilder()
                .withCredential(auth)
                .withRegion(OmsRegion.valueOf(tarRegion))
                .build();

        //迁移对象路径集合
        List<String> listSrcNodeObjectKey = new ArrayList<>();
        listSrcNodeObjectKey.add("22905c52-a956-4679-9b74-9ac247c80317/ddd.jpg");

        //构造迁移任务请求体
        SrcNodeReq srcNodebody = new SrcNodeReq();
        srcNodebody.withCloudType(srcCloudType)
                .withRegion(srcRegion)
                .withAk(srcAK)
                .withSk(srcSK)
                .withBucket(srcBucket)
                .withObjectKey(listSrcNodeObjectKey);

        DstNodeReq dstNodebody = new DstNodeReq();
        dstNodebody.withAk(tarAK)
                .withSk(tarSK)
                .withBucket(tarBucket)
                .withRegion(tarRegion)
                .setSavePrefix(tarPerfix);

        CreateTaskReq body = new CreateTaskReq();
        body.withEnableFailedObjectRecording(true);
        body.withDescription("SDK测试");
        body.withEnableKms(false);
        body.withDstNode(dstNodebody);
        body.withSrcNode(srcNodebody);
        body.withTaskType(CreateTaskReq.TaskTypeEnum.fromValue(taskType));

        CreateTaskRequest request = new CreateTaskRequest();
        request.withBody(body);
        try {
            //创建迁移任务
            CreateTaskResponse response = client.createTask(request);
            System.out.println(response.toString());
        } catch (ConnectionException | RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ThatMonth

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值