use of com.qcloud.cos.model.ciModel.common.MediaOutputObject in project cos-java-sdk-v5 by tencentyun.
the class DocJobDemo method processDocJob.
/**
* 文档预览完整调用demo
*/
public static void processDocJob(COSClient client) throws InterruptedException {
String bucketName = "demo-123456789";
// 1.获取队列id,需要先开启文档预览功能。
DocQueueRequest queueRequest = new DocQueueRequest();
queueRequest.setBucketName(bucketName);
DocListQueueResponse response = client.describeDocProcessQueues(queueRequest);
List<MediaQueueObject> queueList = response.getQueueList();
String queueId = "";
if (queueList.size() != 0) {
MediaQueueObject mediaQueueObject = queueList.get(0);
queueId = mediaQueueObject.getQueueId();
} else {
System.out.println("获取队列失败");
return;
}
// 2.发送文档预览任务
// 2.1添加请求参数 参数详情请见api接口文档
DocJobRequest request = new DocJobRequest();
request.setBucketName(bucketName);
DocJobObject docJobObject = request.getDocJobObject();
docJobObject.setTag("DocProcess");
docJobObject.getInput().setObject("1.pdf");
docJobObject.setQueueId(queueId);
DocProcessObject docProcessObject = docJobObject.getOperation().getDocProcessObject();
docProcessObject.setQuality("100");
docProcessObject.setZoom("100");
docProcessObject.setEndPage("-1");
docProcessObject.setTgtType("jpg");
MediaOutputObject output = docJobObject.getOperation().getOutput();
output.setRegion(client.getClientConfig().getRegion().getRegionName());
output.setBucket(bucketName);
output.setObject("demo/pic-${Number}.jpg");
// 2.2发送预览请求
DocJobResponse docProcessJobs = client.createDocProcessJobs(request);
// 3.轮询查询任务结果(也可以配置队列的回调url,使用回调接口获取任务结果)
DocJobRequest docJobRequest = new DocJobRequest();
docJobRequest.setBucketName(bucketName);
String jobId = docProcessJobs.getJobsDetail().getJobId();
docJobRequest.setJobId(jobId);
while (true) {
DocJobResponse docJobResponse = client.describeDocProcessJob(docJobRequest);
String state = docJobResponse.getJobsDetail().getState();
// 判断任务状态
if ("Success".equalsIgnoreCase(state) || "Failed".equalsIgnoreCase(state)) {
// 处理业务逻辑
System.out.println(docJobResponse);
break;
} else {
Thread.sleep(500);
}
}
}
use of com.qcloud.cos.model.ciModel.common.MediaOutputObject in project cos-java-sdk-v5 by tencentyun.
the class DocJobDemo method createDocJobs.
/**
* createDocJobs 接口用于创建异步文档预览任务。
* 将文档转为指定类型(jpg、png、pdf)并保存至指定的cos路径下
* 该接口为发送任务,如果需要获取转换结果 需要调用查询接口。
*
* @param client
*/
public static void createDocJobs(COSClient client) {
// 1.创建任务请求对象
DocJobRequest request = new DocJobRequest();
// 2.添加请求参数 参数详情请见api接口文档
request.setBucketName("examplebucket-1250000000");
DocJobObject docJobObject = request.getDocJobObject();
docJobObject.setTag("DocProcess");
docJobObject.getInput().setObject("demo.docx");
docJobObject.setQueueId("pc02270c617ae4b6d9b0a52cb1c*****");
DocProcessObject docProcessObject = docJobObject.getOperation().getDocProcessObject();
docProcessObject.setQuality("100");
docProcessObject.setZoom("100");
docProcessObject.setStartPage("1");
docProcessObject.setEndPage("3");
docProcessObject.setTgtType("png");
docProcessObject.setDocPassword("123");
MediaOutputObject output = docJobObject.getOperation().getOutput();
output.setRegion("ap-chongqing");
output.setBucket("examplebucket-1250000000");
output.setObject("mark/pic-${Page}.jpg");
// 3.调用接口,获取任务响应对象
DocJobResponse docProcessJobs = client.createDocProcessJobs(request);
System.out.println(docProcessJobs);
}
use of com.qcloud.cos.model.ciModel.common.MediaOutputObject in project cos-java-sdk-v5 by tencentyun.
the class RequestXmlFactory method convertToXmlByteArray.
/**
* Converts the MediaWorkflowRequest to an XML fragment that can be sent to the RestoreObject
* operation of COS.
*
* @param request The container which provides options for restoring an object,
* which was transitioned to the CAS from COS when it was expired, into COS again.
* @return A byte array containing the data
* @throws CosClientException
*/
public static byte[] convertToXmlByteArray(MediaWorkflowRequest request) throws CosClientException, UnsupportedEncodingException {
XmlWriter xml = new XmlWriter();
xml.start("Request");
xml.start("MediaWorkflow");
xml.start("Name").value(request.getName()).end();
addIfNotNull(xml, "State", request.getState());
addIfNotNull(xml, "WorkflowId", request.getWorkflowId());
xml.start("Topology");
xml.start("Dependencies");
Map<String, MediaWorkflowDependency> mediaWorkflowDependency = request.getTopology().getMediaWorkflowDependency();
for (String key : mediaWorkflowDependency.keySet()) {
xml.start(key).value(mediaWorkflowDependency.get(key).getValue()).end();
}
xml.end();
xml.start("Nodes");
Map<String, MediaWorkflowNode> mediaWorkflowNodes = request.getTopology().getMediaWorkflowNodes();
for (String key : mediaWorkflowNodes.keySet()) {
xml.start(key);
MediaWorkflowNode mediaWorkflowNode = mediaWorkflowNodes.get(key);
xml.start("Type").value(mediaWorkflowNode.getType()).end();
if (mediaWorkflowNode.getInput().getObjectPrefix() != null || mediaWorkflowNode.getInput().getQueueId() != null) {
xml.start("Input");
addIfNotNull(xml, "QueueId", mediaWorkflowNode.getInput().getQueueId());
addIfNotNull(xml, "ObjectPrefix", mediaWorkflowNode.getInput().getObjectPrefix());
xml.end();
}
MediaOperation operation = mediaWorkflowNode.getOperation();
MediaOutputObject output = operation.getOutput();
if (operation.getTemplateId() != null || output.getBucket() != null || output.getObject() != null || output.getRegion() != null) {
xml.start("Operation");
addIfNotNull(xml, "TemplateId", operation.getTemplateId());
xml.start("Output");
addIfNotNull(xml, "Region", output.getRegion());
addIfNotNull(xml, "Bucket", output.getBucket());
addIfNotNull(xml, "Object", output.getObject());
xml.end();
xml.end();
}
xml.end();
}
xml.end();
xml.end();
xml.end();
xml.end();
return xml.getBytes();
}
use of com.qcloud.cos.model.ciModel.common.MediaOutputObject in project cos-java-sdk-v5 by tencentyun.
the class RequestXmlFactory method convertToXmlByteArray.
/**
* Converts the DocJobRequest to an XML fragment that can be sent to the DocJobRequestParams of CI
*
* @param request The container which provides options for restoring an object
* @return A byte array containing the data
* @throws CosClientException
*/
public static byte[] convertToXmlByteArray(DocJobRequest request) {
XmlWriter xml = new XmlWriter();
DocJobObject docJobObject = request.getDocJobObject();
xml.start("Request");
xml.start("Tag").value(docJobObject.getTag()).end();
xml.start("QueueId").value(docJobObject.getQueueId()).end();
xml.start("Input");
xml.start("Object").value(docJobObject.getInput().getObject()).end();
xml.end();
if (CheckObjectUtils.objIsNotValid(docJobObject)) {
xml.start("Operation");
xml.start("Output");
MediaOutputObject output = docJobObject.getOperation().getOutput();
addIfNotNull(xml, "Region", output.getRegion());
addIfNotNull(xml, "Bucket", output.getBucket());
addIfNotNull(xml, "Object", output.getObject());
xml.end();
xml.start("DocProcess");
DocProcessObject docProcess = docJobObject.getOperation().getDocProcessObject();
addIfNotNull(xml, "SrcType", docProcess.getSrcType());
addIfNotNull(xml, "TgtType", docProcess.getTgtType());
addIfNotNull(xml, "SheetId", docProcess.getSheetId());
addIfNotNull(xml, "StartPage", docProcess.getStartPage());
addIfNotNull(xml, "EndPage", docProcess.getEndPage());
addIfNotNull(xml, "ImageParams", docProcess.getImageParams());
addIfNotNull(xml, "DocPassword", docProcess.getDocPassword());
addIfNotNull(xml, "Comments", docProcess.getComments());
addIfNotNull(xml, "PaperDirection", docProcess.getPaperDirection());
addIfNotNull(xml, "Quality", docProcess.getQuality());
addIfNotNull(xml, "Zoom", docProcess.getZoom());
xml.end();
xml.end();
}
xml.end();
return xml.getBytes();
}
Aggregations