更新时间:2024-07-29 GMT+08:00

新建独立加密任务

您可以通过创建MpcClient实例并设置相关参数新建独立加密任务。

前提条件

  • 已购买对象存储服务,并参考上传媒体文件在媒体处理服务同区域(如华北-北京四)上传媒体处理的源视频。
  • 已参考获取云资源授权,完成媒体处理服务授权。

核心代码

  1. 创建独立加密请求
    独立加密请求包括输入文件、输出文件和加密参数设置。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    //设置输入视频地址和输出路径
    ObsObjInfo input = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("input/hls/index.m3u8");
    ObsObjInfo output = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("output");
    
    String ivHlsEncrypt = System.getenv("IV_HLS_ENCRYPT");        
    String exampleKey = System.getenv("EXAMPLE_KEY");
    //创建请求
    CreateEncryptTaskRequest req = new CreateEncryptTaskRequest()
            .withBody(new CreateEncryptReq().withInput(input).withOutput(output)
                    .withEncryption(new Encryption().withHlsEncrypt(new HlsEncrypt()
                            // 设置加密算法
                            .withAlgorithm("AES-128-CBC")
                            // 密钥获取服务的地址
                            .withUrl("www.xxxxx.com")
                            // 设置初始向量
                            .withIv(ivHlsEncrypt)
                            // 设置Key
                            .withKey(exampleKey))));
    //向转码服务发送请求                        
    CreateEncryptTaskResponse rsp = initMpcClient().createEncryptTask(req);
    //打印返回消息
    System.out.println("CreateEncryptTaskResponse=" + JsonUtils.toJSON(rsp));
    

完整代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ClientRequestException;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.http.HttpConfig;
import com.huaweicloud.sdk.core.utils.JsonUtils;
import com.huaweicloud.sdk.mpc.v1.MpcClient;
import com.huaweicloud.sdk.mpc.v1.model.CreateEncryptReq;
import com.huaweicloud.sdk.mpc.v1.model.CreateEncryptTaskRequest;
import com.huaweicloud.sdk.mpc.v1.model.CreateEncryptTaskResponse;
import com.huaweicloud.sdk.mpc.v1.model.Encryption;
import com.huaweicloud.sdk.mpc.v1.model.HlsEncrypt;
import com.huaweicloud.sdk.mpc.v1.model.ObsObjInfo;
import com.obs.services.internal.ServiceException;

public class TestEncrypt {
    /**
     * 初始化 MpcClient
     * @return
     */
    public static MpcClient initMpcClient() {
        HttpConfig httpConfig = HttpConfig.getDefaultHttpConfig().withIgnoreSSLVerification(true).withTimeout(3);
        //http代理设置,请根据实际情况设置
        //httpConfig.withProxyHost("xxxxxx").withProxyPort(xxxxxx).withProxyUsername("xxxxxx").
        //        withProxyPassword("xxxxxx");
        //根据实际填写ak,sk,在控制台账号名下“我的凭证 > 访问密钥”上创建和查看您的AK/SK
        
        String ak = System.getenv("SDK_AK");
        String sk = System.getenv("SDK_SK");
        //根据实际填写项目ID,在控制台账号名下“我的凭证 > API凭证”下查看您的项目ID
        String projectId = System.getenv("PROJECT_ID");
        //根据实际填写所需endpoint,这里以“region01”为例
        String endpoint = "https://mpc.region01.myhuaweicloud.com";
        BasicCredentials auth = new BasicCredentials().withAk(ak).withSk(sk).withProjectId(projectId);
        return MpcClient.newBuilder()
                .withHttpConfig(httpConfig)
                .withCredential(auth)
                .withEndpoint(endpoint)
                .build();
    }

    /**
     * 创建加密任务
     * @param args
     */
    public static void main(String[] args) {
        //设置输入视频地址和输出路径
        ObsObjInfo input = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("input/hls/index.m3u8");
        ObsObjInfo output = new ObsObjInfo().withBucket("mpc-east-2").withLocation("region01").withObject("output");
        String ivHlsEncrypt = System.getenv("IV_HLS_ENCRYPT");
        String exampleKey = System.getenv("EXAMPLE_KEY");
        //创建请求
        CreateEncryptTaskRequest req = new CreateEncryptTaskRequest()
                .withBody(new CreateEncryptReq().withInput(input).withOutput(output)
                        .withEncryption(new Encryption().withHlsEncrypt(new HlsEncrypt()
                                // 设置加密算法
                                .withAlgorithm("AES-128-CBC")
                                // 密钥获取服务的地址
                                .withUrl("www.xxxxx.com")
                                // 设置初始向量
                                .withIv(ivHlsEncrypt)
                                // 设置Key
                                .withKey(exampleKey))));
        //发送加密请求
        try {
            CreateEncryptTaskResponse rsp = initMpcClient().createEncryptTask(req);
            System.out.println("CreateEncryptTaskResponse=" + JsonUtils.toJSON(rsp));
        } catch (ClientRequestException | ConnectionException | RequestTimeoutException | ServiceException e) {
            System.out.println(e);
        }
    }
}