Skip to content

Commit 0f58de2

Browse files
markjrzhangaldoli
authored andcommitted
update DocumentAuditing api and add WebpageAuditing api
1 parent e450809 commit 0f58de2

19 files changed

+728
-6
lines changed

src/main/java/com/qcloud/cos/COS.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@
4646
import com.qcloud.cos.model.ciModel.auditing.TextAuditingResponse;
4747
import com.qcloud.cos.model.ciModel.auditing.VideoAuditingRequest;
4848
import com.qcloud.cos.model.ciModel.auditing.VideoAuditingResponse;
49+
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingRequest;
50+
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingResponse;
4951
import com.qcloud.cos.model.ciModel.bucket.DocBucketRequest;
5052
import com.qcloud.cos.model.ciModel.bucket.DocBucketResponse;
5153
import com.qcloud.cos.model.ciModel.bucket.MediaBucketRequest;
@@ -3001,6 +3003,16 @@ SelectObjectContentResult selectObjectContent(SelectObjectContentRequest selectR
30013003
* GenerateDocPreviewHtmlUrl 查询账号下已开通文档预览功能的bucket
30023004
*/
30033005
String GenerateDocPreviewUrl(DocHtmlRequest docJobRequest) throws URISyntaxException;
3006+
3007+
/**
3008+
* createWebpageAuditingJob 提交网页审核任务 https://cloud.tencent.com/document/product/460/63968
3009+
*/
3010+
WebpageAuditingResponse createWebpageAuditingJob(WebpageAuditingRequest request);
3011+
3012+
/**
3013+
* describeWebpageAuditingJob 查询网页审核任务 https://cloud.tencent.com/document/product/460/63970
3014+
*/
3015+
WebpageAuditingResponse describeWebpageAuditingJob(WebpageAuditingRequest request);
30043016
}
30053017

30063018

src/main/java/com/qcloud/cos/COSClient.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@
108108
import com.qcloud.cos.model.ciModel.auditing.TextAuditingResponse;
109109
import com.qcloud.cos.model.ciModel.auditing.VideoAuditingRequest;
110110
import com.qcloud.cos.model.ciModel.auditing.VideoAuditingResponse;
111+
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingRequest;
112+
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingResponse;
111113
import com.qcloud.cos.model.ciModel.bucket.DocBucketRequest;
112114
import com.qcloud.cos.model.ciModel.bucket.DocBucketResponse;
113115
import com.qcloud.cos.model.ciModel.bucket.MediaBucketRequest;
@@ -4043,6 +4045,24 @@ public String GenerateDocPreviewUrl(DocHtmlRequest docJobRequest) throws URISynt
40434045
return buildDocPreview(request);
40444046
}
40454047

4048+
@Override
4049+
public WebpageAuditingResponse createWebpageAuditingJob(WebpageAuditingRequest webpageAuditingRequest) {
4050+
this.checkCIRequestCommon(webpageAuditingRequest);
4051+
this.rejectStartWith(webpageAuditingRequest.getInput().getUrl(), "http", "The Conf.CallBack parameter mush start with http or https");
4052+
CosHttpRequest<WebpageAuditingRequest> request = createRequest(webpageAuditingRequest.getBucketName(), "/webpage/auditing", webpageAuditingRequest, HttpMethodName.POST);
4053+
this.setContent(request, RequestXmlFactory.convertToXmlByteArray(webpageAuditingRequest), "application/xml", false);
4054+
return invoke(request, new Unmarshallers.WebpageAuditingJobUnmarshaller());
4055+
}
4056+
4057+
@Override
4058+
public WebpageAuditingResponse describeWebpageAuditingJob(WebpageAuditingRequest webpageAuditingRequest) {
4059+
this.checkCIRequestCommon(webpageAuditingRequest);
4060+
rejectNull(webpageAuditingRequest.getJobId(),
4061+
"The jobId parameter must be specified setting the object tags");
4062+
CosHttpRequest<WebpageAuditingRequest> request = createRequest(webpageAuditingRequest.getBucketName(), "/webpage/auditing/" + webpageAuditingRequest.getJobId(), webpageAuditingRequest, HttpMethodName.GET);
4063+
return invoke(request, new Unmarshallers.WebpageAuditingDescribeJobUnmarshaller());
4064+
}
4065+
40464066

40474067
private String buildDocPreview(CosHttpRequest<DocHtmlRequest> request) throws URISyntaxException {
40484068
String urlStr = request.getProtocol().toString() + "://" + request.getEndpoint() + request.getResourcePath();

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public static void createDocProcessBucket(COSClient client) {
2525
DocBucketRequest request = new DocBucketRequest();
2626
//2.添加请求参数 参数详情请见api接口文档
2727
request.setBucketName("examplebucket-1250000000");
28-
//3.调用接口,获取任务响应对象
28+
//3.调用接口
2929
Boolean result = client.createDocProcessBucket(request);
3030
System.out.println(result);
3131
}

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import com.qcloud.cos.model.ciModel.queue.MediaQueueRequest;
66
import com.qcloud.cos.model.ciModel.queue.MediaQueueResponse;
77

8-
import java.io.UnsupportedEncodingException;
9-
108
/**
119
* 媒体处理 queue接口相关demo 详情见https://cloud.tencent.com/document/product/460/38913
1210
*/
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.qcloud.cos.demo.ci;
2+
3+
import com.qcloud.cos.COSClient;
4+
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingRequest;
5+
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingResponse;
6+
import com.qcloud.cos.utils.Jackson;
7+
8+
9+
10+
/**
11+
* 网页审核相关demo 详情见https://cloud.tencent.com/document/product/460/63968
12+
*/
13+
public class WebpageAuditingJobDemo {
14+
15+
public static void main(String[] args) throws InterruptedException {
16+
// 1 初始化用户身份信息(secretId, secretKey)。
17+
COSClient client = ClientUtils.getTestClient();
18+
// 2 调用要使用的方法。
19+
describeWebpageAuditingJob(client);
20+
}
21+
22+
/**
23+
* createWebpageAuditingJob 接口用于提交网页审核任务。
24+
*
25+
* @param client
26+
*/
27+
public static void createWebpageAuditingJob(COSClient client) {
28+
//1.创建任务请求对象
29+
WebpageAuditingRequest request = new WebpageAuditingRequest();
30+
//2.添加请求参数 参数详情请见api接口文档
31+
request.setBucketName("demo-123456789");
32+
// request.getInput().setObject("pron.mp3");
33+
request.getInput().setUrl("https://console.cloud.tencent.com/");
34+
request.getConf().setDetectType("all");
35+
//3.调用接口,获取任务响应对象
36+
WebpageAuditingResponse response = client.createWebpageAuditingJob(request);
37+
System.out.println(response);
38+
}
39+
40+
/**
41+
* describeWebpageAuditingJob 接口用于查询网页审核任务。
42+
*
43+
* @param client
44+
*/
45+
public static void describeWebpageAuditingJob(COSClient client) throws InterruptedException {
46+
//1.创建任务请求对象
47+
WebpageAuditingRequest request = new WebpageAuditingRequest();
48+
//2.添加请求参数 参数详情请见api接口文档
49+
request.setBucketName("demo-123456789");
50+
request.setJobId("sh1acd0928572f11ecaf945254008*****");
51+
while (true) {
52+
//3.调用接口,获取任务响应对象
53+
WebpageAuditingResponse response = client.describeWebpageAuditingJob(request);
54+
String state = response.getJobsDetail().getState();
55+
if ("Success".equalsIgnoreCase(state) || "Failed".equalsIgnoreCase(state)) {
56+
System.out.println(Jackson.toJsonString(response));
57+
break;
58+
}
59+
Thread.sleep(100);
60+
}
61+
62+
}
63+
}

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

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import com.qcloud.cos.model.ciModel.auditing.DocumentAuditingRequest;
4848
import com.qcloud.cos.model.ciModel.auditing.TextAuditingRequest;
4949
import com.qcloud.cos.model.ciModel.auditing.VideoAuditingRequest;
50+
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingRequest;
5051
import com.qcloud.cos.model.ciModel.bucket.DocBucketRequest;
5152
import com.qcloud.cos.model.ciModel.common.MediaOutputObject;
5253
import com.qcloud.cos.model.ciModel.job.DocJobObject;
@@ -804,6 +805,7 @@ public static byte[] convertToXmlByteArray(TextAuditingRequest request) {
804805
xml.start("Input");
805806
addIfNotNull(xml, "Object", request.getInput().getObject());
806807
addIfNotNull(xml, "Content", request.getInput().getContent());
808+
addIfNotNull(xml, "Url", request.getInput().getUrl());
807809
addIfNotNull(xml, "DataId", request.getInput().getDataId());
808810
xml.end();
809811
Conf conf = request.getConf();
@@ -827,6 +829,7 @@ public static byte[] convertToXmlByteArray(DocumentAuditingRequest request) {
827829
xml.start("Request");
828830
xml.start("Input");
829831
addIfNotNull(xml, "Url", request.getInput().getUrl());
832+
addIfNotNull(xml, "Object", request.getInput().getObject());
830833
addIfNotNull(xml, "Type", request.getInput().getType());
831834
addIfNotNull(xml, "DataId", request.getInput().getDataId());
832835
xml.end();
@@ -845,6 +848,29 @@ public static byte[] convertToXmlByteArray(DocumentAuditingRequest request) {
845848
return xml.getBytes();
846849
}
847850

851+
public static byte[] convertToXmlByteArray(WebpageAuditingRequest request) {
852+
XmlWriter xml = new XmlWriter();
853+
854+
xml.start("Request");
855+
xml.start("Input");
856+
addIfNotNull(xml, "Url", request.getInput().getUrl());
857+
xml.end();
858+
Conf conf = request.getConf();
859+
xml.start("Conf");
860+
String detectType = conf.getDetectType();
861+
if ("all".equalsIgnoreCase(detectType)) {
862+
detectType = "Porn,Terrorism,Politics,Ads,Illegal,Abuse";
863+
}
864+
addIfNotNull(xml, "DetectType", detectType);
865+
addIfNotNull(xml, "Callback", conf.getCallback());
866+
addIfNotNull(xml, "BizType", conf.getBizType());
867+
addIfNotNull(xml, "ReturnHighlightHtml", conf.getReturnHighlightHtml());
868+
xml.end();
869+
870+
xml.end();
871+
return xml.getBytes();
872+
}
873+
848874
public static byte[] convertToXmlByteArray(BatchImageAuditingRequest request) {
849875
XmlWriter xml = new XmlWriter();
850876

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import com.qcloud.cos.model.ciModel.auditing.ImageAuditingResponse;
5656
import com.qcloud.cos.model.ciModel.auditing.TextAuditingResponse;
5757
import com.qcloud.cos.model.ciModel.auditing.VideoAuditingResponse;
58+
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingResponse;
5859
import com.qcloud.cos.model.ciModel.bucket.DocBucketResponse;
5960
import com.qcloud.cos.model.ciModel.bucket.MediaBucketResponse;
6061
import com.qcloud.cos.model.ciModel.image.ImageLabelResponse;
@@ -729,4 +730,21 @@ public BatchImageAuditingResponse unmarshall(InputStream in) throws Exception {
729730
.parseBatchImageAuditingResponse(in).getResponse();
730731
}
731732
}
733+
734+
public static class WebpageAuditingJobUnmarshaller implements Unmarshaller<WebpageAuditingResponse, InputStream> {
735+
736+
public WebpageAuditingResponse unmarshall(InputStream in) throws Exception {
737+
return new XmlResponsesSaxParser()
738+
.parseWebpageAuditingJobResponse(in).getResponse();
739+
}
740+
}
741+
742+
public static final class WebpageAuditingDescribeJobUnmarshaller
743+
implements Unmarshaller<WebpageAuditingResponse, InputStream> {
744+
745+
public WebpageAuditingResponse unmarshall(InputStream in) throws Exception {
746+
return new XmlResponsesSaxParser()
747+
.parseDWebpageAuditingDescribeResponse(in).getResponse();
748+
}
749+
}
732750
}

0 commit comments

Comments
 (0)