Skip to content

Commit

Permalink
update DocumentAuditing api and add WebpageAuditing api
Browse files Browse the repository at this point in the history
  • Loading branch information
markjrzhang authored and aldoli committed Dec 17, 2021
1 parent e450809 commit 0f58de2
Show file tree
Hide file tree
Showing 19 changed files with 728 additions and 6 deletions.
12 changes: 12 additions & 0 deletions src/main/java/com/qcloud/cos/COS.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@
import com.qcloud.cos.model.ciModel.auditing.TextAuditingResponse;
import com.qcloud.cos.model.ciModel.auditing.VideoAuditingRequest;
import com.qcloud.cos.model.ciModel.auditing.VideoAuditingResponse;
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingRequest;
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingResponse;
import com.qcloud.cos.model.ciModel.bucket.DocBucketRequest;
import com.qcloud.cos.model.ciModel.bucket.DocBucketResponse;
import com.qcloud.cos.model.ciModel.bucket.MediaBucketRequest;
Expand Down Expand Up @@ -3001,6 +3003,16 @@ SelectObjectContentResult selectObjectContent(SelectObjectContentRequest selectR
* GenerateDocPreviewHtmlUrl 查询账号下已开通文档预览功能的bucket
*/
String GenerateDocPreviewUrl(DocHtmlRequest docJobRequest) throws URISyntaxException;

/**
* createWebpageAuditingJob 提交网页审核任务 https://cloud.tencent.com/document/product/460/63968
*/
WebpageAuditingResponse createWebpageAuditingJob(WebpageAuditingRequest request);

/**
* describeWebpageAuditingJob 查询网页审核任务 https://cloud.tencent.com/document/product/460/63970
*/
WebpageAuditingResponse describeWebpageAuditingJob(WebpageAuditingRequest request);
}


20 changes: 20 additions & 0 deletions src/main/java/com/qcloud/cos/COSClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,8 @@
import com.qcloud.cos.model.ciModel.auditing.TextAuditingResponse;
import com.qcloud.cos.model.ciModel.auditing.VideoAuditingRequest;
import com.qcloud.cos.model.ciModel.auditing.VideoAuditingResponse;
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingRequest;
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingResponse;
import com.qcloud.cos.model.ciModel.bucket.DocBucketRequest;
import com.qcloud.cos.model.ciModel.bucket.DocBucketResponse;
import com.qcloud.cos.model.ciModel.bucket.MediaBucketRequest;
Expand Down Expand Up @@ -4043,6 +4045,24 @@ public String GenerateDocPreviewUrl(DocHtmlRequest docJobRequest) throws URISynt
return buildDocPreview(request);
}

@Override
public WebpageAuditingResponse createWebpageAuditingJob(WebpageAuditingRequest webpageAuditingRequest) {
this.checkCIRequestCommon(webpageAuditingRequest);
this.rejectStartWith(webpageAuditingRequest.getInput().getUrl(), "http", "The Conf.CallBack parameter mush start with http or https");
CosHttpRequest<WebpageAuditingRequest> request = createRequest(webpageAuditingRequest.getBucketName(), "/webpage/auditing", webpageAuditingRequest, HttpMethodName.POST);
this.setContent(request, RequestXmlFactory.convertToXmlByteArray(webpageAuditingRequest), "application/xml", false);
return invoke(request, new Unmarshallers.WebpageAuditingJobUnmarshaller());
}

@Override
public WebpageAuditingResponse describeWebpageAuditingJob(WebpageAuditingRequest webpageAuditingRequest) {
this.checkCIRequestCommon(webpageAuditingRequest);
rejectNull(webpageAuditingRequest.getJobId(),
"The jobId parameter must be specified setting the object tags");
CosHttpRequest<WebpageAuditingRequest> request = createRequest(webpageAuditingRequest.getBucketName(), "/webpage/auditing/" + webpageAuditingRequest.getJobId(), webpageAuditingRequest, HttpMethodName.GET);
return invoke(request, new Unmarshallers.WebpageAuditingDescribeJobUnmarshaller());
}


private String buildDocPreview(CosHttpRequest<DocHtmlRequest> request) throws URISyntaxException {
String urlStr = request.getProtocol().toString() + "://" + request.getEndpoint() + request.getResourcePath();
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/qcloud/cos/demo/ci/DocBucketDemo.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public static void createDocProcessBucket(COSClient client) {
DocBucketRequest request = new DocBucketRequest();
//2.添加请求参数 参数详情请见api接口文档
request.setBucketName("examplebucket-1250000000");
//3.调用接口,获取任务响应对象
//3.调用接口
Boolean result = client.createDocProcessBucket(request);
System.out.println(result);
}
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/com/qcloud/cos/demo/ci/QueueDemo.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
import com.qcloud.cos.model.ciModel.queue.MediaQueueRequest;
import com.qcloud.cos.model.ciModel.queue.MediaQueueResponse;

import java.io.UnsupportedEncodingException;

/**
* 媒体处理 queue接口相关demo 详情见https://cloud.tencent.com/document/product/460/38913
*/
Expand Down
63 changes: 63 additions & 0 deletions src/main/java/com/qcloud/cos/demo/ci/WebpageAuditingJobDemo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package com.qcloud.cos.demo.ci;

import com.qcloud.cos.COSClient;
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingRequest;
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingResponse;
import com.qcloud.cos.utils.Jackson;



/**
* 网页审核相关demo 详情见https://cloud.tencent.com/document/product/460/63968
*/
public class WebpageAuditingJobDemo {

public static void main(String[] args) throws InterruptedException {
// 1 初始化用户身份信息(secretId, secretKey)。
COSClient client = ClientUtils.getTestClient();
// 2 调用要使用的方法。
describeWebpageAuditingJob(client);
}

/**
* createWebpageAuditingJob 接口用于提交网页审核任务。
*
* @param client
*/
public static void createWebpageAuditingJob(COSClient client) {
//1.创建任务请求对象
WebpageAuditingRequest request = new WebpageAuditingRequest();
//2.添加请求参数 参数详情请见api接口文档
request.setBucketName("demo-123456789");
// request.getInput().setObject("pron.mp3");
request.getInput().setUrl("https://console.cloud.tencent.com/");
request.getConf().setDetectType("all");
//3.调用接口,获取任务响应对象
WebpageAuditingResponse response = client.createWebpageAuditingJob(request);
System.out.println(response);
}

/**
* describeWebpageAuditingJob 接口用于查询网页审核任务。
*
* @param client
*/
public static void describeWebpageAuditingJob(COSClient client) throws InterruptedException {
//1.创建任务请求对象
WebpageAuditingRequest request = new WebpageAuditingRequest();
//2.添加请求参数 参数详情请见api接口文档
request.setBucketName("demo-123456789");
request.setJobId("sh1acd0928572f11ecaf945254008*****");
while (true) {
//3.调用接口,获取任务响应对象
WebpageAuditingResponse response = client.describeWebpageAuditingJob(request);
String state = response.getJobsDetail().getState();
if ("Success".equalsIgnoreCase(state) || "Failed".equalsIgnoreCase(state)) {
System.out.println(Jackson.toJsonString(response));
break;
}
Thread.sleep(100);
}

}
}
26 changes: 26 additions & 0 deletions src/main/java/com/qcloud/cos/internal/RequestXmlFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
import com.qcloud.cos.model.ciModel.auditing.DocumentAuditingRequest;
import com.qcloud.cos.model.ciModel.auditing.TextAuditingRequest;
import com.qcloud.cos.model.ciModel.auditing.VideoAuditingRequest;
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingRequest;
import com.qcloud.cos.model.ciModel.bucket.DocBucketRequest;
import com.qcloud.cos.model.ciModel.common.MediaOutputObject;
import com.qcloud.cos.model.ciModel.job.DocJobObject;
Expand Down Expand Up @@ -804,6 +805,7 @@ public static byte[] convertToXmlByteArray(TextAuditingRequest request) {
xml.start("Input");
addIfNotNull(xml, "Object", request.getInput().getObject());
addIfNotNull(xml, "Content", request.getInput().getContent());
addIfNotNull(xml, "Url", request.getInput().getUrl());
addIfNotNull(xml, "DataId", request.getInput().getDataId());
xml.end();
Conf conf = request.getConf();
Expand All @@ -827,6 +829,7 @@ public static byte[] convertToXmlByteArray(DocumentAuditingRequest request) {
xml.start("Request");
xml.start("Input");
addIfNotNull(xml, "Url", request.getInput().getUrl());
addIfNotNull(xml, "Object", request.getInput().getObject());
addIfNotNull(xml, "Type", request.getInput().getType());
addIfNotNull(xml, "DataId", request.getInput().getDataId());
xml.end();
Expand All @@ -845,6 +848,29 @@ public static byte[] convertToXmlByteArray(DocumentAuditingRequest request) {
return xml.getBytes();
}

public static byte[] convertToXmlByteArray(WebpageAuditingRequest request) {
XmlWriter xml = new XmlWriter();

xml.start("Request");
xml.start("Input");
addIfNotNull(xml, "Url", request.getInput().getUrl());
xml.end();
Conf conf = request.getConf();
xml.start("Conf");
String detectType = conf.getDetectType();
if ("all".equalsIgnoreCase(detectType)) {
detectType = "Porn,Terrorism,Politics,Ads,Illegal,Abuse";
}
addIfNotNull(xml, "DetectType", detectType);
addIfNotNull(xml, "Callback", conf.getCallback());
addIfNotNull(xml, "BizType", conf.getBizType());
addIfNotNull(xml, "ReturnHighlightHtml", conf.getReturnHighlightHtml());
xml.end();

xml.end();
return xml.getBytes();
}

public static byte[] convertToXmlByteArray(BatchImageAuditingRequest request) {
XmlWriter xml = new XmlWriter();

Expand Down
18 changes: 18 additions & 0 deletions src/main/java/com/qcloud/cos/internal/Unmarshallers.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
import com.qcloud.cos.model.ciModel.auditing.ImageAuditingResponse;
import com.qcloud.cos.model.ciModel.auditing.TextAuditingResponse;
import com.qcloud.cos.model.ciModel.auditing.VideoAuditingResponse;
import com.qcloud.cos.model.ciModel.auditing.WebpageAuditingResponse;
import com.qcloud.cos.model.ciModel.bucket.DocBucketResponse;
import com.qcloud.cos.model.ciModel.bucket.MediaBucketResponse;
import com.qcloud.cos.model.ciModel.image.ImageLabelResponse;
Expand Down Expand Up @@ -729,4 +730,21 @@ public BatchImageAuditingResponse unmarshall(InputStream in) throws Exception {
.parseBatchImageAuditingResponse(in).getResponse();
}
}

public static class WebpageAuditingJobUnmarshaller implements Unmarshaller<WebpageAuditingResponse, InputStream> {

public WebpageAuditingResponse unmarshall(InputStream in) throws Exception {
return new XmlResponsesSaxParser()
.parseWebpageAuditingJobResponse(in).getResponse();
}
}

public static final class WebpageAuditingDescribeJobUnmarshaller
implements Unmarshaller<WebpageAuditingResponse, InputStream> {

public WebpageAuditingResponse unmarshall(InputStream in) throws Exception {
return new XmlResponsesSaxParser()
.parseDWebpageAuditingDescribeResponse(in).getResponse();
}
}
}
Loading

0 comments on commit 0f58de2

Please sign in to comment.