Skip to content

Commit c44bb41

Browse files
author
aldoli
committed
update AudioAuditing api & add VideoAuditing new params
1 parent ebe0364 commit c44bb41

17 files changed

+253
-63
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [5.6.57]
9+
- update AudioAuditing api
10+
- add VideoAuditing new params
11+
812
## [5.6.56]
913
- add encryption mode aes cbc
1014

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.qcloud</groupId>
66
<artifactId>cos_api</artifactId>
7-
<version>5.6.56</version>
7+
<version>5.6.57</version>
88
<packaging>jar</packaging>
99
<name>cos-java-sdk</name>
1010
<description>java sdk for qcloud cos</description>

src/main/java/com/qcloud/cos/demo/ci/AudioAuditingJobDemo.java

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@
33
import com.qcloud.cos.COSClient;
44
import com.qcloud.cos.model.ciModel.auditing.AudioAuditingRequest;
55
import com.qcloud.cos.model.ciModel.auditing.AudioAuditingResponse;
6+
import com.qcloud.cos.model.ciModel.auditing.AuditingInfo;
7+
8+
import java.util.List;
69

710

811
/**
912
* 内容审核 音频审核接口相关demo 详情见https://cloud.tencent.com/document/product/460/53395
1013
*/
1114
public class AudioAuditingJobDemo {
1215

13-
public static void main(String[] args) {
16+
public static void main(String[] args) throws InterruptedException {
1417
// 1 初始化用户身份信息(secretId, secretKey)。
1518
COSClient client = ClientUtils.getTestClient();
1619
// 2 调用要使用的方法。
@@ -27,8 +30,9 @@ public static void createAudioAuditingJobs(COSClient client) {
2730
AudioAuditingRequest request = new AudioAuditingRequest();
2831
//2.添加请求参数 参数详情请见api接口文档
2932
request.setBucketName("demo-123456789");
30-
request.getInput().setObject("pron.mp3");
31-
request.getConf().setDetectType("Porn,Terrorism,Politics,Ads");
33+
// request.getInput().setObject("pron.mp3");
34+
request.getInput().setUrl("https://demo-123456789.cos.ap-chongqing.myqcloud.com/pron.mp3");
35+
request.getConf().setDetectType("all");
3236
request.getConf().setCallback("http://cloud.tencent.com/");
3337
//3.调用接口,获取任务响应对象
3438
AudioAuditingResponse response = client.createAudioAuditingJobs(request);
@@ -40,14 +44,26 @@ public static void createAudioAuditingJobs(COSClient client) {
4044
*
4145
* @param client
4246
*/
43-
public static void describeAudioAuditingJob(COSClient client) {
47+
public static void describeAudioAuditingJob(COSClient client) throws InterruptedException {
4448
//1.创建任务请求对象
4549
AudioAuditingRequest request = new AudioAuditingRequest();
4650
//2.添加请求参数 参数详情请见api接口文档
4751
request.setBucketName("demo-123456789");
48-
request.setJobId("sacbf7269cbd2e11eba5325254009*****");
49-
//3.调用接口,获取任务响应对象
50-
AudioAuditingResponse response = client.describeAudioAuditingJob(request);
51-
System.out.println(response);
52+
request.setJobId("sa9175bc451c4b11ecb3fa5254009*****");
53+
while (true) {
54+
//3.调用接口,获取任务响应对象
55+
AudioAuditingResponse response = client.describeAudioAuditingJob(request);
56+
String state = response.getJobsDetail().getState();
57+
if ("Success".equalsIgnoreCase(state) || "Failed".equalsIgnoreCase(state)) {
58+
System.out.println(response.getRequestId());
59+
System.out.println(response.getJobsDetail());
60+
//4.根据业务逻辑进行处理结果,此处工具类处理操作仅供参考。
61+
List<AuditingInfo> auditingInfoList = AuditingResultUtil.getAuditingInfoList(response.getJobsDetail());
62+
System.out.println(auditingInfoList);
63+
break;
64+
}
65+
Thread.sleep(100);
66+
}
67+
5268
}
5369
}

src/main/java/com/qcloud/cos/demo/ci/VideoAuditingJobDemo.java

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.qcloud.cos.demo.ci;
22

33
import com.qcloud.cos.COSClient;
4-
import com.qcloud.cos.model.ciModel.auditing.SnapshotInfo;
4+
import com.qcloud.cos.model.ciModel.auditing.AuditingInfo;
55
import com.qcloud.cos.model.ciModel.auditing.VideoAuditingRequest;
66
import com.qcloud.cos.model.ciModel.auditing.VideoAuditingResponse;
77

@@ -12,11 +12,11 @@
1212
*/
1313
public class VideoAuditingJobDemo {
1414

15-
public static void main(String[] args) {
15+
public static void main(String[] args) throws InterruptedException {
1616
// 1 初始化用户身份信息(secretId, secretKey)。
1717
COSClient client = ClientUtils.getTestClient();
1818
// 2 调用要使用的方法。
19-
createVideoAuditingJob(client);
19+
describeAuditingJob(client);
2020
}
2121

2222
/**
@@ -27,8 +27,10 @@ public static void createVideoAuditingJob(COSClient client) {
2727
VideoAuditingRequest request = new VideoAuditingRequest();
2828
//2.添加请求参数 参数详情请见api接口文档
2929
request.setBucketName("demo-123456789");
30+
//2.1.对象地址或直接传入审核资源url
3031
request.getInput().setObject("1.mp4");
31-
request.getConf().setDetectType("Porn,Terrorism,Politics,Ads");
32+
// request.getInput().setUrl("https://demo-123456789.cos.ap-beijing.myqcloud.com/1.mp4");
33+
request.getConf().setDetectType("all");
3234
request.getConf().getSnapshot().setCount("10");
3335
request.getConf().getSnapshot().setMode("Interval");
3436
request.getConf().getSnapshot().setTimeInterval("10");
@@ -42,15 +44,27 @@ public static void createVideoAuditingJob(COSClient client) {
4244
*
4345
* @param client
4446
*/
45-
public static void describeAuditingJob(COSClient client) {
47+
public static void describeAuditingJob(COSClient client) throws InterruptedException {
4648
//1.创建任务请求对象
4749
VideoAuditingRequest request = new VideoAuditingRequest();
4850
//2.添加请求参数 参数详情请见api接口文档
4951
request.setBucketName("demo-123456789");
50-
request.setJobId("av81591b4bbd2211eb80235254008*****");
52+
request.setJobId("av2628fdd21c4d11ecb3fa5254009*****");
5153
//3.调用接口,获取任务响应对象
52-
VideoAuditingResponse response = client.describeAuditingJob(request);
53-
List<SnapshotInfo> snapshotList = response.getJobsDetail().getSnapshotList();
54-
System.out.println(snapshotList.size());
54+
while (true) {
55+
//3.调用接口,获取任务响应对象
56+
VideoAuditingResponse response = client.describeAuditingJob(request);
57+
String state = response.getJobsDetail().getState();
58+
if ("Success".equalsIgnoreCase(state) || "Failed".equalsIgnoreCase(state)) {
59+
System.out.println(response.getRequestId());
60+
System.out.println(state);
61+
System.out.println(response.getJobsDetail());
62+
//4.根据业务逻辑进行处理结果,此处工具类处理操作仅供参考。
63+
List<AuditingInfo> auditingInfoList = AuditingResultUtil.getAuditingInfoList(response.getJobsDetail());
64+
System.out.println(auditingInfoList);
65+
break;
66+
}
67+
Thread.sleep(100);
68+
}
5569
}
5670
}

src/main/java/com/qcloud/cos/internal/RequestXmlFactory.java

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,11 @@
6363
import com.qcloud.cos.model.ciModel.queue.DocQueueRequest;
6464
import com.qcloud.cos.model.ciModel.queue.MediaQueueRequest;
6565
import com.qcloud.cos.model.ciModel.snapshot.SnapshotRequest;
66-
import com.qcloud.cos.model.ciModel.template.MediaTemplateRequest;
6766
import com.qcloud.cos.model.ciModel.template.MediaSnapshotObject;
68-
import com.qcloud.cos.model.ciModel.template.MediaWatermark;
69-
import com.qcloud.cos.model.ciModel.template.MediaWaterMarkText;
67+
import com.qcloud.cos.model.ciModel.template.MediaTemplateRequest;
7068
import com.qcloud.cos.model.ciModel.template.MediaWaterMarkImage;
69+
import com.qcloud.cos.model.ciModel.template.MediaWaterMarkText;
70+
import com.qcloud.cos.model.ciModel.template.MediaWatermark;
7171
import com.qcloud.cos.model.ciModel.workflow.MediaOperation;
7272
import com.qcloud.cos.model.ciModel.workflow.MediaWorkflowDependency;
7373
import com.qcloud.cos.model.ciModel.workflow.MediaWorkflowNode;
@@ -729,10 +729,15 @@ public static byte[] convertToXmlByteArray(VideoAuditingRequest request) {
729729
xml.start("Request");
730730
xml.start("Input");
731731
addIfNotNull(xml,"Object",request.getInput().getObject());
732+
addIfNotNull(xml, "Url", request.getInput().getUrl());
732733
xml.end();
733734
Conf conf = request.getConf();
734735
xml.start("Conf");
735-
addIfNotNull(xml,"DetectType", conf.getDetectType());
736+
String detectType = conf.getDetectType();
737+
if ("all".equalsIgnoreCase(detectType)) {
738+
detectType = "Porn,Terrorism,Politics,Ads,Illegal,Abuse";
739+
}
740+
addIfNotNull(xml,"DetectType", detectType);
736741
addIfNotNull(xml,"BizType", conf.getBizType());
737742
addIfNotNull(xml,"DetectContent", conf.getDetectContent());
738743
addIfNotNull(xml,"CallbackVersion", conf.getCallbackVersion());
@@ -760,14 +765,19 @@ public static byte[] convertToXmlByteArray(AudioAuditingRequest request) {
760765

761766
xml.start("Request");
762767
xml.start("Input");
763-
addIfNotNull(xml,"Object",request.getInput().getObject());
768+
addIfNotNull(xml, "Object", request.getInput().getObject());
769+
addIfNotNull(xml, "Url", request.getInput().getUrl());
764770
xml.end();
765771
Conf conf = request.getConf();
766772
xml.start("Conf");
767-
addIfNotNull(xml,"DetectType", conf.getDetectType());
768-
addIfNotNull(xml,"Callback", conf.getCallback());
769-
addIfNotNull(xml,"CallbackVersion", conf.getCallbackVersion());
770-
addIfNotNull(xml,"BizType", conf.getBizType());
773+
String detectType = conf.getDetectType();
774+
if ("all".equalsIgnoreCase(detectType)) {
775+
detectType = "Porn,Terrorism,Politics,Ads,Illegal,Abuse";
776+
}
777+
addIfNotNull(xml, "DetectType", detectType);
778+
addIfNotNull(xml, "Callback", conf.getCallback());
779+
addIfNotNull(xml, "CallbackVersion", conf.getCallbackVersion());
780+
addIfNotNull(xml, "BizType", conf.getBizType());
771781
xml.end();
772782

773783
xml.end();

src/main/java/com/qcloud/cos/internal/XmlResponsesSaxParser.java

Lines changed: 66 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,6 @@
1818

1919
package com.qcloud.cos.internal;
2020

21-
import java.io.BufferedReader;
22-
import java.io.ByteArrayInputStream;
23-
import java.io.IOException;
24-
import java.io.InputStream;
25-
import java.io.InputStreamReader;
26-
import java.net.URLDecoder;
27-
import java.util.ArrayList;
28-
import java.util.Date;
29-
import java.util.LinkedHashMap;
30-
import java.util.LinkedList;
31-
import java.util.List;
32-
import java.util.Map;
33-
3421
import com.qcloud.cos.exception.CosClientException;
3522
import com.qcloud.cos.exception.CosServiceException;
3623
import com.qcloud.cos.exception.MultiObjectDeleteException.DeleteError;
@@ -76,11 +63,11 @@
7663
import com.qcloud.cos.model.ReplicationRule;
7764
import com.qcloud.cos.model.RoutingRule;
7865
import com.qcloud.cos.model.RoutingRuleCondition;
66+
import com.qcloud.cos.model.Tag.LifecycleTagPredicate;
67+
import com.qcloud.cos.model.Tag.Tag;
7968
import com.qcloud.cos.model.TagSet;
8069
import com.qcloud.cos.model.UinGrantee;
8170
import com.qcloud.cos.model.VersionListing;
82-
import com.qcloud.cos.model.Tag.LifecycleTagPredicate;
83-
import com.qcloud.cos.model.Tag.Tag;
8471
import com.qcloud.cos.model.ciModel.auditing.AudioAuditingResponse;
8572
import com.qcloud.cos.model.ciModel.auditing.AuditingJobsDetail;
8673
import com.qcloud.cos.model.ciModel.auditing.AudtingCommonInfo;
@@ -172,7 +159,6 @@
172159
import com.qcloud.cos.utils.DateUtils;
173160
import com.qcloud.cos.utils.StringUtils;
174161
import com.qcloud.cos.utils.UrlEncoderUtils;
175-
176162
import org.slf4j.Logger;
177163
import org.slf4j.LoggerFactory;
178164
import org.xml.sax.Attributes;
@@ -182,6 +168,19 @@
182168
import org.xml.sax.helpers.DefaultHandler;
183169
import org.xml.sax.helpers.XMLReaderFactory;
184170

171+
import java.io.BufferedReader;
172+
import java.io.ByteArrayInputStream;
173+
import java.io.IOException;
174+
import java.io.InputStream;
175+
import java.io.InputStreamReader;
176+
import java.net.URLDecoder;
177+
import java.util.ArrayList;
178+
import java.util.Date;
179+
import java.util.LinkedHashMap;
180+
import java.util.LinkedList;
181+
import java.util.List;
182+
import java.util.Map;
183+
185184
/**
186185
* XML Sax parser to read XML documents returned by COS via the REST interface, converting these
187186
* documents into objects.
@@ -5350,6 +5349,9 @@ protected void doEndElement(String uri, String name, String qName) {
53505349
case "Result":
53515350
jobsDetail.setResult(getText());
53525351
break;
5352+
case "Url":
5353+
jobsDetail.setUrl(getText());
5354+
break;
53535355
default:
53545356
break;
53555357
}
@@ -5377,6 +5379,13 @@ protected void doEndElement(String uri, String name, String qName) {
53775379
} else if (in("Response", "JobsDetail", "Snapshot", "AdsInfo")) {
53785380
SnapshotInfo snapshotInfo = snapshotList.get(snapshotList.size() - 1);
53795381
parseInfo(snapshotInfo.getAdsInfo(), name, getText());
5382+
}else if (in("Response", "JobsDetail", "Snapshot")) {
5383+
SnapshotInfo snapshotInfo = snapshotList.get(snapshotList.size() - 1);
5384+
if ("Text".equalsIgnoreCase(name)){
5385+
snapshotInfo.setText(getText());
5386+
}else if ("Url".equalsIgnoreCase(name)){
5387+
snapshotInfo.setUrl(getText());
5388+
}
53805389
}
53815390
}
53825391

@@ -5456,7 +5465,10 @@ public static class DescribeAudioAuditingJobHandler extends AbstractHandler {
54565465

54575466
@Override
54585467
protected void doStartElement(String uri, String name, String qName, Attributes attrs) {
5459-
5468+
List<SectionInfo> sectionList = response.getJobsDetail().getSectionList();
5469+
if (in("Response", "JobsDetail") && "Section".equals(name)) {
5470+
sectionList.add(new SectionInfo());
5471+
}
54605472
}
54615473

54625474
@Override
@@ -5485,6 +5497,9 @@ protected void doEndElement(String uri, String name, String qName) {
54855497
case "Result":
54865498
jobsDetail.setResult(getText());
54875499
break;
5500+
case "AudioText":
5501+
jobsDetail.setAudioText(getText());
5502+
break;
54885503
default:
54895504
break;
54905505
}
@@ -5496,6 +5511,40 @@ protected void doEndElement(String uri, String name, String qName) {
54965511
parseInfo(response.getJobsDetail().getTerroristInfo(), name, getText());
54975512
} else if (in("Response", "JobsDetail", "AdsInfo")) {
54985513
parseInfo(response.getJobsDetail().getAdsInfo(), name, getText());
5514+
} else if (in("Response", "JobsDetail", "Section", "PornInfo")) {
5515+
List<SectionInfo> sectionList = response.getJobsDetail().getSectionList();
5516+
SectionInfo sectionInfo = sectionList.get(sectionList.size() - 1);
5517+
parseInfo(sectionInfo.getPornInfo(), name, getText());
5518+
} else if (in("Response", "JobsDetail", "Section", "PoliticsInfo")) {
5519+
List<SectionInfo> sectionList = response.getJobsDetail().getSectionList();
5520+
SectionInfo sectionInfo = sectionList.get(sectionList.size() - 1);
5521+
parseInfo(sectionInfo.getPoliticsInfo(), name, getText());
5522+
} else if (in("Response", "JobsDetail", "Section", "TerrorismInfo")) {
5523+
List<SectionInfo> sectionList = response.getJobsDetail().getSectionList();
5524+
SectionInfo sectionInfo = sectionList.get(sectionList.size() - 1);
5525+
parseInfo(sectionInfo.getTerroristInfo(), name, getText());
5526+
} else if (in("Response", "JobsDetail", "Section", "AdsInfo")) {
5527+
List<SectionInfo> sectionList = response.getJobsDetail().getSectionList();
5528+
SectionInfo sectionInfo = sectionList.get(sectionList.size() - 1);
5529+
parseInfo(sectionInfo.getAdsInfo(), name, getText());
5530+
}else if (in("Response", "JobsDetail", "Section")){
5531+
List<SectionInfo> sectionList = response.getJobsDetail().getSectionList();
5532+
SectionInfo sectionInfo = sectionList.get(sectionList.size() - 1);
5533+
switch (name){
5534+
case "Text":
5535+
sectionInfo.setText(getText());
5536+
break;
5537+
case "Url":
5538+
sectionInfo.setUrl(getText());
5539+
break;
5540+
case "Duration":
5541+
sectionInfo.setDuration(getText());
5542+
break;
5543+
case "OffsetTime":
5544+
sectionInfo.setOffsetTime(getText());
5545+
default:
5546+
break;
5547+
}
54995548
}
55005549
}
55015550

0 commit comments

Comments
 (0)