aliyun文件转码

POM.xml

媒体处理文档

<dependency>
	<groupId>com.aliyun.oss</groupId>
	<artifactId>aliyun-sdk-oss</artifactId>
	<version>2.8.3</version>
</dependency>

<dependency>
	<groupId>com.aliyun</groupId>
	<artifactId>aliyun-java-sdk-core</artifactId>
	<version>3.5.0</version>
</dependency>
<dependency>
	<groupId>com.aliyun</groupId>
	<artifactId>aliyun-java-sdk-mts</artifactId>
	<version>2.5.2</version>
</dependency>
  1. 代码
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FileDto {

    private String ossInputObject;  // 阿里云文件地址

    private String ossOutputObject; // 转码后的路径
}
@RestController
@Log4j2
public class TranscodeImpl {

    @Autowired
    private SysProperties sysProperties;

    @ApiOperation("文件转码")
    @RequestMapping(value = "/handle/transcode", method = RequestMethod.POST)
    public RestResponse<Boolean> transcode(@RequestBody FileDto fileDto) throws Exception {
        DefaultProfile profile = DefaultProfile.getProfile(
                sysProperties.getMpsRegionId(),      // 地域ID
                sysProperties.getAccessKeyId(),      // RAM账号的AccessKey ID
                sysProperties.getAccessKeySecret()); // RAM账号Access Key Secret
        IAcsClient client = new DefaultAcsClient(profile);

        SubmitJobsRequest request = new SubmitJobsRequest();

        JSONObject input = new JSONObject();
        input.put("Location", "oss-cn-hangzhou");
        input.put("Bucket", sysProperties.getBucketName());
        input.put("Object", URLEncoder.encode(fileDto.getOssInputObject(), "utf-8"));
        request.setInput(input.toJSONString());


        String outputOssObject = URLEncoder.encode(fileDto.getOssOutputObject(), "utf-8");
        JSONObject output = new JSONObject();
        output.put("OutputObject", outputOssObject);

        JSONObject container = new JSONObject();
        container.put("Format", "m3u8");
        output.put("Container", container.toJSONString());
        output.put("TemplateId", sysProperties.getM3u8TemplateId());

        JSONArray outputs = new JSONArray();
        outputs.add(output);

        request.setPipelineId(sysProperties.getM3u8PipelineId());
        request.setOutputs(outputs.toJSONString());
        request.setOutputBucket(sysProperties.getBucketName());


        SubmitJobsResponse response = client.getAcsResponse(request);
        log.info("RequestId is:" + response.getRequestId());
        if (response.getJobResultList().get(0).getSuccess()) {
            log.info("JobId is:" + response.getJobResultList().get(0).getJob().getJobId());
        } else {
            log.info("SubmitJobs Failed code:" + response.getJobResultList().get(0).getCode() +
                    " message:" + response.getJobResultList().get(0).getMessage());
        }

        return RestResponse.success(true);
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值