Skip to content

TranslationDemo #253

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/main/java/com/qcloud/cos/COS.java
Original file line number Diff line number Diff line change
Expand Up @@ -3298,6 +3298,10 @@ SelectObjectContentResult selectObjectContent(SelectObjectContentRequest selectR
MediaTemplateResponseV2 createMediaTemplateV2(MediaTemplateRequestV2 request);

ImageOCRResponse imageOCR(ImageOCRRequest request);

TranslationResponse createTranslationJob(TranslationRequest translationRequest);

ImageQualityResponse AccessImageQulity(ImageQualityRequest request);
}


23 changes: 22 additions & 1 deletion src/main/java/com/qcloud/cos/COSClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -4155,6 +4155,7 @@ public MediaListQueueResponse describeMediaQueues(MediaQueueRequest req) {
addParameterIfNotNull(request, "queueIds", req.getQueueId());
addParameterIfNotNull(request, "state", req.getState());
addParameterIfNotNull(request, "pageNumber", req.getPageNumber());
addParameterIfNotNull(request, "category", req.getCategory());
addParameterIfNotNull(request, "pageSize", req.getPageSize());
return invoke(request, new Unmarshallers.ListQueueUnmarshaller());
}
Expand Down Expand Up @@ -4269,7 +4270,7 @@ public MediaWorkflowListResponse describeWorkflow(MediaWorkflowListRequest reque
public MediaWorkflowExecutionResponse describeWorkflowExecution(MediaWorkflowListRequest request) {
this.checkCIRequestCommon(request);
CosHttpRequest<MediaWorkflowListRequest> httpRequest = this.createRequest(request.getBucketName(), "/workflowexecution/" + request.getRunId(), request, HttpMethodName.GET);
return this.invoke(httpRequest, new Unmarshallers.WorkflowExecutionUnmarshaller());
return this.invoke(httpRequest, new Unmarshallers.CICommonUnmarshaller<MediaWorkflowExecutionResponse>(MediaWorkflowExecutionResponse.class));
}

@Override
Expand Down Expand Up @@ -5757,5 +5758,25 @@ private void preflightObj(UploadPartRequest uploadPartRequest) throws CosClientE
invoke(request, voidCosResponseHandler);
}
}

@Override
public TranslationResponse createTranslationJob(TranslationRequest req) {
CosHttpRequest<TranslationRequest> request = createRequest(req.getBucketName(), "/jobs", req, HttpMethodName.POST);

this.setContent(request, CIAuditingXmlFactoryV2.convertToXmlByteArray(req), "application/xml", false);

return invoke(request, new Unmarshallers.CICommonUnmarshaller<TranslationResponse>(TranslationResponse.class));
}

@Override
public ImageQualityResponse AccessImageQulity(ImageQualityRequest req) {
CosHttpRequest<ImageQualityRequest> request = createRequest(req.getBucketName(), req.getObjectKey(), req, HttpMethodName.GET);

addParameterIfNotNull(request, "ci-process", "AssessQuality");

request.addHeader("Accept", "application/xml");

return invoke(request, new Unmarshallers.CICommonUnmarshaller<ImageQualityResponse>(ImageQualityResponse.class));
}
}

2 changes: 2 additions & 0 deletions src/main/java/com/qcloud/cos/demo/ci/FileProcessJobDemo.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ public static void createFileUncompressJob(COSClient client) {
FileUnCompressConfig fileUnCompressConfig = request.getOperation().getFileUnCompressConfig();
fileUnCompressConfig.setPrefix("output/");
fileUnCompressConfig.setPrefixReplaced("1");
fileUnCompressConfig.setUnCompressKey("demo");
fileUnCompressConfig.setListingFile(true);
MediaOutputObject output = request.getOperation().getOutput();
output.setBucket("demo-1234567890");
output.setRegion("ap-chongqing");
Expand Down
29 changes: 29 additions & 0 deletions src/main/java/com/qcloud/cos/demo/ci/ImageQualityDemo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.qcloud.cos.demo.ci;

import com.qcloud.cos.COSClient;
import com.qcloud.cos.model.ciModel.job.ImageQualityRequest;
import com.qcloud.cos.model.ciModel.job.ImageQualityResponse;

/*
* 图片质量评估相关demo https://cloud.tencent.com/document/product/460/63228
*/
public class ImageQualityDemo {
public static void main(String[] args) {
// 1. 初始化客户端
COSClient client = ClientUtils.getTestClient();
assessImageQuality(client);
}

public static void assessImageQuality(COSClient client) {
// 1. 创建请求对象
ImageQualityRequest request = new ImageQualityRequest();

// 2. 设置请求参数
request.setBucketName("demobucket-1251704708");
request.setObjectKey("demo.jpeg");

// 3. 发起GET请求,返回结果
ImageQualityResponse response = client.AccessImageQulity(request);
System.out.println(response.getRequestId());
}
}
6 changes: 4 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 @@ -14,7 +14,7 @@ public static void main(String[] args) {
// 1 初始化用户身份信息(secretId, secretKey)。
COSClient client = ClientUtils.getTestClient();
// 2 调用要使用的方法。
updateMediaQueue(client);
describeMediaQueues(client);
}

/**
Expand All @@ -26,7 +26,9 @@ public static void describeMediaQueues(COSClient client){
MediaQueueRequest request = new MediaQueueRequest();
//2.添加请求参数 参数详情请见api接口文档
request.setBucketName("DemoBucket-123456789");
//3.调用接口,获取队列响应对象
//3.添加返回队列类型
request.setCategory("CateAll");
//4.调用接口,获取队列响应对象
MediaListQueueResponse response = client.describeMediaQueues(request);
System.out.println(response);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ public static void createMediaTemplate(COSClient client) throws UnsupportedEncod
transConfig.setAdjDarMethod("scale");
transConfig.setIsCheckReso("false");
transConfig.setResoAdjMethod("1");
transConfig.setIsCheckVideoFps("true");
//2.4 添加TimeInterval对象的值
MediaTimeIntervalObject timeInterval = request.getTimeInterval();
timeInterval.setStart("0");
Expand Down
57 changes: 57 additions & 0 deletions src/main/java/com/qcloud/cos/demo/ci/TranslationDemo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package com.qcloud.cos.demo.ci;

import com.qcloud.cos.COSClient;
import com.qcloud.cos.model.ciModel.job.TranslationInput;
import com.qcloud.cos.model.ciModel.job.TranslationOutput;
import com.qcloud.cos.model.ciModel.job.TranslationRequest;
import com.qcloud.cos.model.ciModel.job.TranslationResponse;

/**
* 异步翻译相关demo https://cloud.tencent.com/document/product/460/84799
*/
public class TranslationDemo {
public static void main(String[] args) {
// 1. 初始化客户端
COSClient client = ClientUtils.getTestClient();

// 2. 创建翻译任务
createTranslationJob(client);
}

public static void createTranslationJob(COSClient client) {
// 1. 构建请求对象
TranslationRequest request = new TranslationRequest();

// 2. 设置基础参数
request.setBucketName("demobucket-1251704708");
request.setTag("Translation");

// 3. 配置输入
TranslationInput input = new TranslationInput();
input.setObject("demo.txt");
input.setLang("zh");
input.setType("txt");
request.setInput(input);

// 4. 配置输出
TranslationOutput output = new TranslationOutput();
output.setRegion("ap-guangzhou");
output.setBucket("demobucket-1251704708");
output.setObject("translated1.txt");
request.getOperation().setOutput(output);

// 5. 配置翻译参数
request.getOperation().getTranslation().setLang("en");
request.getOperation().getTranslation().setType("txt");

// 6. 配置其他参数
request.getOperation().setJobLevel("0");
request.getOperation().setUserData("userData");

request.setCallBack("http://xxxx.xxxx.xxxx:xxxx");
request.setCallBackFormat("JSON");

TranslationResponse response = client.createTranslationJob(request);
System.out.println(response.getJobId());
}
}
2 changes: 1 addition & 1 deletion src/main/java/com/qcloud/cos/demo/ci/WorkFlowDemo.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public static void main(String[] args) {
// 1 初始化用户身份信息(secretId, secretKey)。
COSClient client = ClientUtils.getTestClient();
// 2 调用要使用的方法。
triggerWorkflowList(client);
describeWorkflowExecution(client);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ public class generatePrivateM3U8UrlDemo {
private static String bucket = "demo-123456789";
private static String objectKey = "test.m3u8";
private static String expires = "3600";
// https://console.cloud.tencent.com/cos/bucket?bucket=桶名&region=地域&type=ci&anchorType=video 获取播放密钥
private static byte[] secret = "YourSecret".getBytes();

public static String generateCosDomainPrivateM3U8Url(COSClient client) throws UnsupportedEncodingException {
Expand Down
70 changes: 30 additions & 40 deletions src/main/java/com/qcloud/cos/internal/RequestXmlFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@

package com.qcloud.cos.internal;

import static com.qcloud.cos.model.ciModel.xml.CIMediaXmlFactory.addAigcMetadata;
import static com.qcloud.cos.model.ciModel.xml.CIMediaXmlFactory.addCallBackKafkaConfig;
import static com.qcloud.cos.model.ciModel.xml.CIMediaXmlFactory.addCallBackMqConfig;

import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
import java.util.Collections;
Expand Down Expand Up @@ -346,7 +342,7 @@ public static byte[] convertToXmlByteArray(MediaJobsRequest request) {

MediaJobOperation operation = request.getOperation();
xml.start("Operation");
addIfNotNull(xml,"TemplateId",operation.getTemplateId());
addIfNotNull(xml, "TemplateId", operation.getTemplateId());

List<String> watermarkTemplateId = operation.getWatermarkTemplateId();
if (watermarkTemplateId.size() != 0) {
Expand Down Expand Up @@ -397,20 +393,20 @@ public static byte[] convertToXmlByteArray(MediaJobsRequest request) {
}

MediaConcatTemplateObject mediaConcatTemplate = operation.getMediaConcatTemplate();
if (CheckObjectUtils.objIsNotValid(mediaConcatTemplate)){
if (CheckObjectUtils.objIsNotValid(mediaConcatTemplate)) {
xml.start("ConcatTemplate");
List<MediaConcatFragmentObject> concatFragmentList = mediaConcatTemplate.getConcatFragmentList();
for (MediaConcatFragmentObject concatFragment : concatFragmentList) {
xml.start("ConcatFragment");
addIfNotNull(xml,"Mode",concatFragment.getMode());
addIfNotNull(xml,"Url",concatFragment.getUrl());
addIfNotNull(xml, "Mode", concatFragment.getMode());
addIfNotNull(xml, "Url", concatFragment.getUrl());
xml.end();
}
addVideo(xml,mediaConcatTemplate.getVideo());
addAudio(xml,mediaConcatTemplate.getAudio());
addIfNotNull(xml,"Index",mediaConcatTemplate.getIndex());
addVideo(xml, mediaConcatTemplate.getVideo());
addAudio(xml, mediaConcatTemplate.getAudio());
addIfNotNull(xml, "Index", mediaConcatTemplate.getIndex());
String format = mediaConcatTemplate.getContainer().getFormat();
if (!StringUtils.isNullOrEmpty(format)){
if (!StringUtils.isNullOrEmpty(format)) {
xml.start("Container");
xml.start("Format").value(format).end();
xml.end();
Expand Down Expand Up @@ -463,26 +459,26 @@ public static byte[] convertToXmlByteArray(MediaJobsRequest request) {
MediaDigitalWatermark digitalWatermark = operation.getDigitalWatermark();
if (CheckObjectUtils.objIsNotValid(digitalWatermark)) {
xml.start("DigitalWatermark");
addIfNotNull(xml, "Message",digitalWatermark.getMessage());
addIfNotNull(xml, "Type",digitalWatermark.getType());
addIfNotNull(xml, "Version",digitalWatermark.getVersion());
addIfNotNull(xml, "Message", digitalWatermark.getMessage());
addIfNotNull(xml, "Type", digitalWatermark.getType());
addIfNotNull(xml, "Version", digitalWatermark.getVersion());
xml.end();
}

ExtractDigitalWatermark extractDigitalWatermark = operation.getExtractDigitalWatermark();
if (extractDigitalWatermark.getType() != null || extractDigitalWatermark.getMessage() != null) {
xml.start("ExtractDigitalWatermark");
addIfNotNull(xml, "Message",extractDigitalWatermark.getMessage());
addIfNotNull(xml, "Type",extractDigitalWatermark.getType());
addIfNotNull(xml, "Version",extractDigitalWatermark.getVersion());
addIfNotNull(xml, "Message", extractDigitalWatermark.getMessage());
addIfNotNull(xml, "Type", extractDigitalWatermark.getType());
addIfNotNull(xml, "Version", extractDigitalWatermark.getVersion());
xml.end();
}
MediaOutputObject output = operation.getOutput();
if (CheckObjectUtils.objIsNotValid(output)){
if (CheckObjectUtils.objIsNotValid(output)) {
xml.start("Output");
addIfNotNull(xml,"Region",output.getRegion());
addIfNotNull(xml,"Object",output.getObject());
addIfNotNull(xml,"Bucket",output.getBucket());
addIfNotNull(xml, "Region", output.getRegion());
addIfNotNull(xml, "Object", output.getObject());
addIfNotNull(xml, "Bucket", output.getBucket());
xml.end();
}

Expand Down Expand Up @@ -636,7 +632,6 @@ public static byte[] convertToXmlByteArray(MediaTemplateRequest request) {
addIfNotNull(xml, "ResoAdjMethod", request.getTransConfig().getResoAdjMethod());
addIfNotNull(xml, "TransMode", request.getTransConfig().getTransMode());
addIfNotNull(xml, "VideoBitrateAdjMethod", request.getTransConfig().getVideoBitrateAdjMethod());
addAigcMetadata(xml, request.getTransConfig().getAigcMetadata());
xml.end();

addVideo(xml, request);
Expand Down Expand Up @@ -695,13 +690,8 @@ public static byte[] convertToXmlByteArray(DocJobRequest request) {
xml.start("Input");
xml.start("Object").value(docJobObject.getInput().getObject()).end();
xml.end();
addIfNotNull(xml, "CallBack", docJobObject.getCallBack());
addIfNotNull(xml, "CallBackFormat", docJobObject.getCallBackFormat());
addIfNotNull(xml, "CallBackType", docJobObject.getCallBackType());
addCallBackMqConfig(xml, docJobObject.getCallBackMqConfig());
addCallBackKafkaConfig(xml, docJobObject.getCallBackKafkaConfig());

if (CheckObjectUtils.objIsNotValid(docJobObject)){
if (CheckObjectUtils.objIsNotValid(docJobObject)) {
xml.start("Operation");
xml.start("Output");
MediaOutputObject output = docJobObject.getOperation().getOutput();
Expand All @@ -726,7 +716,7 @@ public static byte[] convertToXmlByteArray(DocJobRequest request) {
addIfNotNull(xml, "PicPagination", docProcess.getPicPagination());
addIfNotNull(xml, "ImageDpi", docProcess.getImageDpi());
xml.end();
addIfNotNull(xml, "UserData", docJobObject.getOperation().getUserData());

xml.end();
}
xml.end();
Expand Down Expand Up @@ -813,7 +803,7 @@ public static byte[] convertToXmlByteArray(AudioAuditingRequest request) {
Conf conf = request.getConf();
xml.start("Conf");
String detectType = conf.getDetectType();
addAuditingDetectType(xml,detectType);
addAuditingDetectType(xml, detectType);
addIfNotNull(xml, "Callback", conf.getCallback());
addIfNotNull(xml, "CallbackVersion", conf.getCallbackVersion());
addIfNotNull(xml, "BizType", conf.getBizType());
Expand Down Expand Up @@ -844,7 +834,7 @@ public static byte[] convertToXmlByteArray(TextAuditingRequest request) {
Conf conf = request.getConf();
xml.start("Conf");
String detectType = conf.getDetectType();
addAuditingDetectType(xml,detectType);
addAuditingDetectType(xml, detectType);
addIfNotNull(xml, "Callback", conf.getCallback());
addIfNotNull(xml, "BizType", conf.getBizType());
addIfNotNull(xml, "CallbackVersion", conf.getCallbackVersion());
Expand All @@ -869,7 +859,7 @@ public static byte[] convertToXmlByteArray(DocumentAuditingRequest request) {
Conf conf = request.getConf();
xml.start("Conf");
String detectType = conf.getDetectType();
addAuditingDetectType(xml,detectType);
addAuditingDetectType(xml, detectType);
addIfNotNull(xml, "Callback", conf.getCallback());
addIfNotNull(xml, "BizType", conf.getBizType());
xml.end();
Expand All @@ -888,7 +878,7 @@ public static byte[] convertToXmlByteArray(WebpageAuditingRequest request) {
Conf conf = request.getConf();
xml.start("Conf");
String detectType = conf.getDetectType();
addAuditingDetectType(xml,detectType);
addAuditingDetectType(xml, detectType);
addIfNotNull(xml, "Callback", conf.getCallback());
addIfNotNull(xml, "BizType", conf.getBizType());
addIfNotNull(xml, "ReturnHighlightHtml", conf.getReturnHighlightHtml());
Expand All @@ -912,14 +902,14 @@ public static byte[] convertToXmlByteArray(BatchImageAuditingRequest request) {
addIfNotNull(xml, "Interval", inputObject.getInterval());
addIfNotNull(xml, "LargeImageDetect", inputObject.getLargeImageDetect());
addIfNotNull(xml, "Content", inputObject.getContent());
addUserInfo(xml,inputObject.getUserInfo());
addUserInfo(xml, inputObject.getUserInfo());
xml.end();
}

Conf conf = request.getConf();
xml.start("Conf");
String detectType = conf.getDetectType();
addAuditingDetectType(xml,detectType);
addAuditingDetectType(xml, detectType);
addIfNotNull(xml, "BizType", conf.getBizType());
addIfNotNull(xml, "Async", conf.getAsync());
addIfNotNull(xml, "Callback", conf.getCallback());
Expand All @@ -929,7 +919,6 @@ public static byte[] convertToXmlByteArray(BatchImageAuditingRequest request) {
return xml.getBytes();
}


private static void addIfNotNull(XmlWriter xml, String xmlTag, String value) {
if (value != null) {
xml.start(xmlTag).value(value).end();
Expand All @@ -944,9 +933,10 @@ private static void addIfNotNull(XmlWriter xml, String xmlTag, Object value) {

private static void addVideo(XmlWriter xml, MediaTemplateRequest request) {
MediaVideoObject video = request.getVideo();
addVideo(xml,video);
addVideo(xml, video);
}
private static void addVideo(XmlWriter xml, MediaVideoObject video){

private static void addVideo(XmlWriter xml, MediaVideoObject video) {
if (CheckObjectUtils.objIsValid(video)) {
return;
}
Expand Down Expand Up @@ -977,7 +967,7 @@ private static void addVideo(XmlWriter xml, MediaVideoObject video){
xml.end();
}

private static void addVideo(XmlWriter xml, MediaTranscodeVideoObject video){
private static void addVideo(XmlWriter xml, MediaTranscodeVideoObject video) {
if (CheckObjectUtils.objIsValid(video)) {
return;
}
Expand Down
Loading