diff --git a/CHANGELOG.md b/CHANGELOG.md index 5dd7bda5..637e2e26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [5.6.99] +- update CI image processing API + ## [5.6.97] - update Auditing API diff --git a/pom.xml b/pom.xml index ca8b9b4c..b8a5f701 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.qcloud cos_api - 5.6.98 + 5.6.99 jar cos-java-sdk java sdk for qcloud cos diff --git a/src/main/java/com/qcloud/cos/COS.java b/src/main/java/com/qcloud/cos/COS.java index 64bfcc6f..7b5a91b4 100644 --- a/src/main/java/com/qcloud/cos/COS.java +++ b/src/main/java/com/qcloud/cos/COS.java @@ -3052,6 +3052,14 @@ SelectObjectContentResult selectObjectContent(SelectObjectContentRequest selectR MediaWorkflowListResponse triggerWorkflowList(MediaWorkflowListRequest request); InputStream getSnapshot(CosSnapshotRequest request); + + String generateQrcode(GenerateQrcodeRequest request); + + Boolean addImageStyle(ImageStyleRequest request); + + ImageStyleResponse getImageStyle(ImageStyleRequest request); + + Boolean deleteImageStyle(ImageStyleRequest request); } diff --git a/src/main/java/com/qcloud/cos/COSClient.java b/src/main/java/com/qcloud/cos/COSClient.java index 966ad645..437e7eec 100644 --- a/src/main/java/com/qcloud/cos/COSClient.java +++ b/src/main/java/com/qcloud/cos/COSClient.java @@ -48,6 +48,7 @@ import com.qcloud.cos.auth.COSSessionCredentials; import com.qcloud.cos.auth.COSSigner; import com.qcloud.cos.auth.COSStaticCredentialsProvider; +import com.qcloud.cos.endpoint.CIPicRegionEndpointBuilder; import com.qcloud.cos.endpoint.CIRegionEndpointBuilder; import com.qcloud.cos.endpoint.EndpointBuilder; import com.qcloud.cos.endpoint.RegionEndpointBuilder; @@ -64,6 +65,7 @@ import com.qcloud.cos.http.HttpResponseHandler; import com.qcloud.cos.internal.BucketNameUtils; import com.qcloud.cos.internal.CIGetSnapshotResponseHandler; +import com.qcloud.cos.internal.CIPicServiceRequest; import com.qcloud.cos.internal.CIServiceRequest; import com.qcloud.cos.internal.CIWorkflowServiceRequest; import com.qcloud.cos.internal.COSDefaultAclHeaderHandler; @@ -107,12 +109,15 @@ import com.qcloud.cos.model.ciModel.bucket.MediaBucketResponse; import com.qcloud.cos.model.ciModel.common.ImageProcessRequest; import com.qcloud.cos.model.ciModel.common.MediaOutputObject; +import com.qcloud.cos.model.ciModel.image.GenerateQrcodeRequest; import com.qcloud.cos.model.ciModel.image.ImageLabelRequest; import com.qcloud.cos.model.ciModel.image.ImageLabelResponse; import com.qcloud.cos.model.ciModel.image.ImageLabelV2Request; import com.qcloud.cos.model.ciModel.image.ImageLabelV2Response; import com.qcloud.cos.model.ciModel.image.ImageSearchRequest; import com.qcloud.cos.model.ciModel.image.ImageSearchResponse; +import com.qcloud.cos.model.ciModel.image.ImageStyleRequest; +import com.qcloud.cos.model.ciModel.image.ImageStyleResponse; import com.qcloud.cos.model.ciModel.image.OpenImageSearchRequest; import com.qcloud.cos.model.ciModel.job.DocHtmlRequest; import com.qcloud.cos.model.ciModel.job.DocJobListRequest; @@ -526,6 +531,8 @@ private void buildUrlAndHost(CosHttpRequest req bucket = formatBucket(bucket, fetchCredential().getCOSAppId()); if (isCIRequest) { endpoint = new CIRegionEndpointBuilder(clientConfig.getRegion()).buildGeneralApiEndpoint(bucket); + } else if (request.getOriginalRequest() instanceof CIPicServiceRequest) { + endpoint = new CIPicRegionEndpointBuilder(clientConfig.getRegion()).buildGeneralApiEndpoint(bucket); } else { endpoint = clientConfig.getEndpointBuilder().buildGeneralApiEndpoint(bucket); } @@ -4234,7 +4241,7 @@ public PutAsyncFetchTaskResult putAsyncFetchTask(PutAsyncFetchTaskRequest putAsy CosHttpRequest request = createRequest(putAsyncFetchTaskRequest.getBucketName(), String.format("/%s/", putAsyncFetchTaskRequest.getBucketName()), putAsyncFetchTaskRequest, HttpMethodName.POST); PutAsyncFetchTaskSerializer serializer = new PutAsyncFetchTaskSerializer(PutAsyncFetchTaskRequest.class); - SimpleModule module = + SimpleModule module = new SimpleModule("PutAsyncFetchTaskSerializer", new Version(1, 0, 0, null, null, null)); module.addSerializer(PutAsyncFetchTaskRequest.class, serializer); @@ -4379,5 +4386,58 @@ public InputStream getSnapshot(CosSnapshotRequest snapshotRequest) { return this.invoke(request, new CIGetSnapshotResponseHandler()); } + @Override + public String generateQrcode(GenerateQrcodeRequest generateQrcodeRequest) { + rejectNull(generateQrcodeRequest, + "The request parameter must be specified setting the object tags"); + rejectNull(generateQrcodeRequest.getBucketName(), + "The bucketName parameter must be specified setting the object tags"); + CosHttpRequest request = this.createRequest(generateQrcodeRequest.getBucketName(), "/", generateQrcodeRequest, HttpMethodName.GET); + addParameterIfNotNull(request, "ci-process", "qrcode-generate"); + addParameterIfNotNull(request, "qrcode-content", generateQrcodeRequest.getQrcodeContent()); + addParameterIfNotNull(request, "mode", generateQrcodeRequest.getMode()); + addParameterIfNotNull(request, "width", generateQrcodeRequest.getWidth()); + return this.invoke(request, new Unmarshallers.GenerateQrcodeUnmarshaller()); + } + + @Override + public Boolean addImageStyle(ImageStyleRequest imageStyleRequest) { + rejectNull(imageStyleRequest, + "The request parameter must be specified setting the object tags"); + rejectNull(imageStyleRequest.getBucketName(), + "The bucketName parameter must be specified setting the object tags"); + CosHttpRequest request = createRequest(imageStyleRequest.getBucketName(), "/", imageStyleRequest, HttpMethodName.PUT); + request.addParameter("style", ""); + this.setContent(request, CImageXmlFactory.addStyleConvertToXmlByteArray(imageStyleRequest), "application/xml", false); + invoke(request, voidCosResponseHandler); + return true; + } + + @Override + public ImageStyleResponse getImageStyle(ImageStyleRequest imageStyleRequest) { + rejectNull(imageStyleRequest, + "The request parameter must be specified setting the object tags"); + rejectNull(imageStyleRequest.getBucketName(), + "The bucketName parameter must be specified setting the object tags"); + CosHttpRequest request = createRequest(imageStyleRequest.getBucketName(), "/", imageStyleRequest, HttpMethodName.GET); + request.addParameter("style", ""); + this.setContent(request, CImageXmlFactory.getStyleConvertToXmlByteArray(imageStyleRequest), "application/xml", false); + invoke(request, new Unmarshallers.getImageStyleUnmarshaller()); + return null; + } + + @Override + public Boolean deleteImageStyle(ImageStyleRequest imageStyleRequest) { + rejectNull(imageStyleRequest, + "The request parameter must be specified setting the object tags"); + rejectNull(imageStyleRequest.getBucketName(), + "The bucketName parameter must be specified setting the object tags"); + CosHttpRequest request = createRequest(imageStyleRequest.getBucketName(), "/", imageStyleRequest, HttpMethodName.DELETE); + request.addParameter("style", ""); + this.setContent(request, CImageXmlFactory.deleteStyleConvertToXmlByteArray(imageStyleRequest), "application/xml", false); + invoke(request, voidCosResponseHandler); + return true; + } + } diff --git a/src/main/java/com/qcloud/cos/demo/ci/ImageStyleDemo.java b/src/main/java/com/qcloud/cos/demo/ci/ImageStyleDemo.java new file mode 100644 index 00000000..5923a490 --- /dev/null +++ b/src/main/java/com/qcloud/cos/demo/ci/ImageStyleDemo.java @@ -0,0 +1,72 @@ +package com.qcloud.cos.demo.ci; + +import com.qcloud.cos.COSClient; +import com.qcloud.cos.model.ciModel.image.ImageStyleRequest; +import com.qcloud.cos.model.ciModel.image.ImageStyleResponse; +import com.qcloud.cos.model.ciModel.image.StyleRule; + +import java.util.List; + + +/** + * 图片样式接口 demo + * 接口详情见 https://cloud.tencent.com/document/product/460/30118 + */ +public class ImageStyleDemo { + public static void main(String[] args) throws Exception { + COSClient cosClient = ClientUtils.getTestClient(); + // 小于5GB文件用简单上传 + addImageStyle(cosClient); + cosClient.shutdown(); + } + + /** + * 添加图片处理样式 + * https://cloud.tencent.com/document/product/460/53491 + */ + public static void addImageStyle(COSClient cosClient) { + //1.创建二维码生成请求对象 + ImageStyleRequest request = new ImageStyleRequest(); + //2.添加请求参数 参数详情请见api接口文档 + request.setBucketName("examplebucket-1250000000"); + request.setStyleName("DemoStyle"); + //设置样式规则,demo此处处理规则含义为:缩放图片宽高为原图50% + request.setStyleBody("imageMogr2/thumbnail/!50p"); + Boolean response = cosClient.addImageStyle(request); + } + + /** + * 查询图片处理样式 + * https://cloud.tencent.com/document/product/460/30117 + */ + public static void getImageStyle(COSClient cosClient) { + //1.创建二维码生成请求对象 + ImageStyleRequest request = new ImageStyleRequest(); + //2.添加请求参数 参数详情请见api接口文档 + request.setBucketName("examplebucket-1250000000"); + request.setStyleName("DemoStyle"); + ImageStyleResponse response = cosClient.getImageStyle(request); + List styleRule = response.getStyleRule(); + for (StyleRule rule : styleRule) { + System.out.println(rule.getStyleName()); + System.out.println(rule.getStyleBody()); + } + } + + /** + * 查询图片处理样式 + * https://cloud.tencent.com/document/product/460/30117 + */ + public static void deleteImageStyle(COSClient cosClient) { + //1.创建二维码生成请求对象 + ImageStyleRequest request = new ImageStyleRequest(); + //2.添加请求参数 参数详情请见api接口文档 + request.setBucketName("examplebucket-1250000000"); + request.setStyleName("DemoStyle"); + //设置样式规则,demo此处处理规则含义为:缩放图片宽高为原图50% + request.setStyleBody("imageMogr2/thumbnail/!50p"); + Boolean response = cosClient.deleteImageStyle(request); + } + + +} diff --git a/src/main/java/com/qcloud/cos/demo/ci/QRCodeDemo.java b/src/main/java/com/qcloud/cos/demo/ci/QRCodeDemo.java index bcb7bc12..ef28856e 100644 --- a/src/main/java/com/qcloud/cos/demo/ci/QRCodeDemo.java +++ b/src/main/java/com/qcloud/cos/demo/ci/QRCodeDemo.java @@ -13,6 +13,7 @@ import com.qcloud.cos.model.UploadPartRequest; import com.qcloud.cos.model.UploadPartResult; import com.qcloud.cos.model.UploadResult; +import com.qcloud.cos.model.ciModel.image.GenerateQrcodeRequest; import com.qcloud.cos.model.ciModel.persistence.CIObject; import com.qcloud.cos.model.ciModel.persistence.CIUploadResult; import com.qcloud.cos.model.ciModel.persistence.PicOperations; @@ -27,6 +28,22 @@ public class QRCodeDemo { + + /** + * 二维码生成 https://cloud.tencent.com/document/product/460/53491 + */ + public static void generateQrcode(COSClient cosClient) { + //1.创建二维码生成请求对象 + GenerateQrcodeRequest request = new GenerateQrcodeRequest(); + //2.添加请求参数 参数详情请见api接口文档 + request.setBucketName("examplebucket-1250000000"); + request.setQrcodeContent("数据万象"); + request.setWidth("400"); + request.setMode("0"); + String imageBase64 = cosClient.generateQrcode(request); + System.out.println(imageBase64); + } + public static void identifyQrCode(COSClient cosClient) { // bucket名需包含appid // api 请参考 https://cloud.tencent.com/document/product/436/54070 @@ -50,7 +67,7 @@ public static void identifyQrCode(COSClient cosClient) { CIUploadResult ciUploadResult = putObjectResult.getCiUploadResult(); System.out.println(putObjectResult.getRequestId()); System.out.println(ciUploadResult.getOriginalInfo().getEtag()); - for(CIObject ciObject:ciUploadResult.getProcessResults().getObjectList()) { + for (CIObject ciObject : ciUploadResult.getProcessResults().getObjectList()) { System.out.println(ciObject.getLocation()); } } catch (CosServiceException e) { @@ -107,7 +124,7 @@ public static void identifyQrCodeWithMultipart(COSClient cosClient) throws FileN CIUploadResult ciUploadResult = completeMultipartUploadResult.getCiUploadResult(); System.out.println(completeMultipartUploadResult.getRequestId()); System.out.println(ciUploadResult.getOriginalInfo().getEtag()); - for(CIObject ciObject:ciUploadResult.getProcessResults().getObjectList()) { + for (CIObject ciObject : ciUploadResult.getProcessResults().getObjectList()) { System.out.println(ciObject.getLocation()); } @@ -136,14 +153,15 @@ public static void identifyQrCodeWithTransferManager(TransferManager transferMan CIUploadResult ciUploadResult = uploadResult.getCiUploadResult(); System.out.println(uploadResult.getRequestId()); System.out.println(ciUploadResult.getOriginalInfo().getEtag()); - for(CIObject ciObject:ciUploadResult.getProcessResults().getObjectList()) { + for (CIObject ciObject : ciUploadResult.getProcessResults().getObjectList()) { System.out.println(ciObject.getLocation()); } } + public static void main(String[] args) throws Exception { COSClient cosClient = ClientUtils.getTestClient(); // 小于5GB文件用简单上传 - identifyQrCode(cosClient); + generateQrcode(cosClient); cosClient.shutdown(); } } diff --git a/src/main/java/com/qcloud/cos/endpoint/CIPicRegionEndpointBuilder.java b/src/main/java/com/qcloud/cos/endpoint/CIPicRegionEndpointBuilder.java new file mode 100644 index 00000000..7b3aea7e --- /dev/null +++ b/src/main/java/com/qcloud/cos/endpoint/CIPicRegionEndpointBuilder.java @@ -0,0 +1,45 @@ +/* + * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + + * According to cos feature, we modify some class,comment, field name, etc. + */ + + +package com.qcloud.cos.endpoint; + +import com.qcloud.cos.internal.BucketNameUtils; +import com.qcloud.cos.region.Region; + +public class CIPicRegionEndpointBuilder implements EndpointBuilder { + private Region region; + + public CIPicRegionEndpointBuilder(Region region) { + super(); + this.region = region; + } + + @Override + public String buildGeneralApiEndpoint(String bucketName) { + if (this.region == null) { + throw new IllegalArgumentException("region is null"); + } + BucketNameUtils.validateBucketName(bucketName); + return String.format("%s.pic.%s.myqcloud.com", bucketName, Region.formatCIRegion(this.region)); + } + + @Override + public String buildGetServiceApiEndpoint() { + return "service.pic.myqcloud.com"; + } +} diff --git a/src/main/java/com/qcloud/cos/internal/CIPicServiceRequest.java b/src/main/java/com/qcloud/cos/internal/CIPicServiceRequest.java new file mode 100644 index 00000000..2498a3f0 --- /dev/null +++ b/src/main/java/com/qcloud/cos/internal/CIPicServiceRequest.java @@ -0,0 +1,24 @@ +/* + * Copyright 2020 腾讯云, Inc. or its affiliates. All Rights Reserved. + * + * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). + * You may not use this file except in compliance with the License. + * A copy of the License is located at + * + * http://aws.amazon.com/apache2.0 + * + * or in the "license" file accompanying this file. This file is distributed + * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing + * permissions and limitations under the License. + + * According to ci feature, we modify some class,comment, field name, etc. + */ + +package com.qcloud.cos.internal; + +public class CIPicServiceRequest extends CIServiceRequest { + +} diff --git a/src/main/java/com/qcloud/cos/internal/ParserMediaInfoUtils.java b/src/main/java/com/qcloud/cos/internal/ParserMediaInfoUtils.java index d17786fc..602357ae 100644 --- a/src/main/java/com/qcloud/cos/internal/ParserMediaInfoUtils.java +++ b/src/main/java/com/qcloud/cos/internal/ParserMediaInfoUtils.java @@ -2,7 +2,8 @@ import com.qcloud.cos.model.ciModel.auditing.AudioSectionInfo; import com.qcloud.cos.model.ciModel.auditing.AudtingCommonInfo; -import com.qcloud.cos.model.ciModel.auditing.ListInfo; +import com.qcloud.cos.model.ciModel.auditing.BatchImageJobDetail; +import com.qcloud.cos.model.ciModel.auditing.LibResult; import com.qcloud.cos.model.ciModel.auditing.ListResult; import com.qcloud.cos.model.ciModel.auditing.OcrResults; import com.qcloud.cos.model.ciModel.auditing.PoliticsInfoObjectResults; @@ -29,6 +30,8 @@ import com.qcloud.cos.model.ciModel.template.MediaWatermark; import com.qcloud.cos.model.ciModel.template.SpriteSnapshotConfig; +import java.util.List; + /** * MediaInfo 解析工具类 */ @@ -600,7 +603,13 @@ public static void ParsingAuditingUserInfo(UserInfo userInfo, String name, Strin } } - public static void ParsingAuditingListResultInfo(ListResult result, String name, String value) { + public static void parsingLastLibResult(List results, String name, String value) { + if (!results.isEmpty()) { + parsingLibResults(results.get(results.size() - 1), name, value); + } + } + + public static void parsingAuditingListResultInfo(ListResult result, String name, String value) { switch (name) { case "ListName": result.setListName(value); @@ -616,6 +625,19 @@ public static void ParsingAuditingListResultInfo(ListResult result, String name, } } + public static void parsingLibResults(LibResult result, String name, String value) { + switch (name) { + case "ImageId": + result.setImageId(value); + break; + case "Score": + result.setScore(value); + break; + default: + break; + } + } + public static void ParsingAuditingCommonInfo(AudtingCommonInfo obj, String name, String value) { switch (name) { case "Code": @@ -838,4 +860,53 @@ public static void ParsingSegment(MediaSegmentObject segment, String name, Strin break; } } + + public static void ParsingAuditingBatchImageJobDetail(BatchImageJobDetail jobsDetail, String name, String value) { + switch (name) { + case "Object": + jobsDetail.setObject(value); + break; + case "DataId": + jobsDetail.setDataId(value); + break; + case "Label": + jobsDetail.setLabel(value); + break; + case "Result": + jobsDetail.setResult(value); + break; + case "Score": + jobsDetail.setScore(value); + case "Text": + jobsDetail.setText(value); + case "SubLabel": + jobsDetail.setSubLabel(value); + break; + case "Code": + jobsDetail.setCode(value); + break; + case "Message": + jobsDetail.setMessage(value); + break; + case "Url": + jobsDetail.setUrl(value); + break; + case "JobId": + jobsDetail.setJobId(value); + break; + case "Category": + jobsDetail.setCategory(value); + break; + case "CompressionResult": + jobsDetail.setCompressionResult(value); + break; + case "State": + jobsDetail.setState(value); + break; + default: + break; + } + } + + } \ No newline at end of file diff --git a/src/main/java/com/qcloud/cos/internal/Unmarshallers.java b/src/main/java/com/qcloud/cos/internal/Unmarshallers.java index 4a54f40f..caf41bce 100644 --- a/src/main/java/com/qcloud/cos/internal/Unmarshallers.java +++ b/src/main/java/com/qcloud/cos/internal/Unmarshallers.java @@ -63,6 +63,7 @@ import com.qcloud.cos.model.ciModel.image.ImageLabelResponse; import com.qcloud.cos.model.ciModel.image.ImageLabelV2Response; import com.qcloud.cos.model.ciModel.image.ImageSearchResponse; +import com.qcloud.cos.model.ciModel.image.ImageStyleResponse; import com.qcloud.cos.model.ciModel.job.DocJobListResponse; import com.qcloud.cos.model.ciModel.job.DocJobResponse; import com.qcloud.cos.model.ciModel.job.MediaJobResponse; @@ -807,4 +808,22 @@ public MediaWorkflowListResponse unmarshall(InputStream in) throws Exception { .parsetriggerWorkflowListResponse(in).getResponse(); } } + + public static final class GenerateQrcodeUnmarshaller + implements Unmarshaller { + + public String unmarshall(InputStream in) throws Exception { + return new XmlResponsesSaxParser() + .parseGenerateQrcodeResponse(in).getResponse(); + } + } + + public static final class getImageStyleUnmarshaller + implements Unmarshaller { + + public ImageStyleResponse unmarshall(InputStream in) throws Exception { + return new XmlResponsesSaxParser() + .parseGetImageStyleResponse(in).getResponse(); + } + } } diff --git a/src/main/java/com/qcloud/cos/internal/XmlResponsesSaxParser.java b/src/main/java/com/qcloud/cos/internal/XmlResponsesSaxParser.java index b2cedf05..9aa67bd2 100644 --- a/src/main/java/com/qcloud/cos/internal/XmlResponsesSaxParser.java +++ b/src/main/java/com/qcloud/cos/internal/XmlResponsesSaxParser.java @@ -35,6 +35,8 @@ import com.qcloud.cos.exception.CosServiceException; import com.qcloud.cos.exception.MultiObjectDeleteException.DeleteError; import com.qcloud.cos.internal.cihandler.DetectCarHandler; +import com.qcloud.cos.internal.cihandler.GenerateQrcodeHandler; +import com.qcloud.cos.internal.cihandler.GetImageStyleHandler; import com.qcloud.cos.internal.cihandler.SearchImageHandler; import com.qcloud.cos.internal.cihandler.TriggerWorkflowListHandler; import com.qcloud.cos.model.AbortIncompleteMultipartUpload; @@ -94,7 +96,7 @@ import com.qcloud.cos.model.ciModel.auditing.DocumentAuditingResponse; import com.qcloud.cos.model.ciModel.auditing.DocumentResultInfo; import com.qcloud.cos.model.ciModel.auditing.ImageAuditingResponse; -import com.qcloud.cos.model.ciModel.auditing.ListInfo; +import com.qcloud.cos.model.ciModel.auditing.LibResult; import com.qcloud.cos.model.ciModel.auditing.ListResult; import com.qcloud.cos.model.ciModel.auditing.ObjectResults; import com.qcloud.cos.model.ciModel.auditing.OcrResults; @@ -113,7 +115,6 @@ import com.qcloud.cos.model.ciModel.common.MediaOutputObject; import com.qcloud.cos.model.ciModel.image.ImageLabelResponse; import com.qcloud.cos.model.ciModel.image.ImageLabelV2Response; -import com.qcloud.cos.model.ciModel.image.ImageSearchResponse; import com.qcloud.cos.model.ciModel.image.Lobel; import com.qcloud.cos.model.ciModel.image.LobelV2; import com.qcloud.cos.model.ciModel.image.LocationLabel; @@ -146,7 +147,6 @@ import com.qcloud.cos.model.ciModel.mediaInfo.MediaStream; import com.qcloud.cos.model.ciModel.persistence.CIObject; import com.qcloud.cos.model.ciModel.persistence.CIUploadResult; -import com.qcloud.cos.model.ciModel.persistence.DetectCarResponse; import com.qcloud.cos.model.ciModel.persistence.ImageInfo; import com.qcloud.cos.model.ciModel.persistence.OriginalInfo; import com.qcloud.cos.model.ciModel.persistence.ProcessResults; @@ -875,6 +875,24 @@ public TriggerWorkflowListHandler parsetriggerWorkflowListResponse(InputStream i return handler; } + public GenerateQrcodeHandler parseGenerateQrcodeResponse(InputStream inputStream) throws IOException { + GenerateQrcodeHandler handler = new GenerateQrcodeHandler(); + parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream)); + return handler; + } + + public GenerateQrcodeHandler parseImageStyleResponse(InputStream inputStream) throws IOException { + GenerateQrcodeHandler handler = new GenerateQrcodeHandler(); + parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream)); + return handler; + } + + public GetImageStyleHandler parseGetImageStyleResponse(InputStream inputStream) throws IOException { + GetImageStyleHandler handler = new GetImageStyleHandler(); + parseXmlInputStream(handler, sanitizeXmlDocument(handler, inputStream)); + return handler; + } + /** * @param inputStream * @@ -5561,7 +5579,7 @@ protected void doEndElement(String uri, String name, String qName) { } else if (in("Response", "JobsDetail", "ListInfo", "ListResults")) { List listResults = response.getJobsDetail().getListInfo().getListResults(); if (!listResults.isEmpty()) { - ParserMediaInfoUtils.ParsingAuditingListResultInfo(listResults.get(listResults.size() - 1), name, getText()); + ParserMediaInfoUtils.parsingAuditingListResultInfo(listResults.get(listResults.size() - 1), name, getText()); } } } @@ -5707,7 +5725,7 @@ protected void doEndElement(String uri, String name, String qName) { } else if (in("Response", "JobsDetail", "ListInfo", "ListResults")) { List listResults = response.getJobsDetail().getListInfo().getListResults(); if (!listResults.isEmpty()) { - ParserMediaInfoUtils.ParsingAuditingListResultInfo(listResults.get(listResults.size() - 1), name, getText()); + ParserMediaInfoUtils.parsingAuditingListResultInfo(listResults.get(listResults.size() - 1), name, getText()); } } } @@ -6040,11 +6058,16 @@ public static class TextAuditingDescribeJobHandler extends AbstractHandler { @Override protected void doStartElement(String uri, String name, String qName, Attributes attrs) { - List sectionList = response.getJobsDetail().getSectionList(); + AuditingJobsDetail jobsDetail = response.getJobsDetail(); + List sectionList = jobsDetail.getSectionList(); if ((in("Response", "Detail") || in("Response", "JobsDetail")) && "Section".equals(name)) { sectionList.add(new SectionInfo()); - } else if (in("Response", "JobsDetail", "ListInfo") && "ListResults".equals(name)) { - response.getJobsDetail().getListInfo().getListResults().add(new ListResult()); + } else if (in("Response", "JobsDetail", "Section","PornInfo") && "LibResults".equals(name)) { + if (!sectionList.isEmpty()){ + SectionInfo sectionInfo = sectionList.get(sectionList.size() - 1); + List libResults = sectionInfo.getPornInfo().getLibResults(); + libResults.add(new LibResult()); + } } } @@ -6107,7 +6130,7 @@ protected void doEndElement(String uri, String name, String qName) { } else if (in("Response", "JobsDetail", "ListInfo", "ListResults")) { List listResults = response.getJobsDetail().getListInfo().getListResults(); if (!listResults.isEmpty()) { - ParserMediaInfoUtils.ParsingAuditingListResultInfo(listResults.get(listResults.size() - 1), name, getText()); + ParserMediaInfoUtils.parsingAuditingListResultInfo(listResults.get(listResults.size() - 1), name, getText()); } } else if (in("Response", "Detail", "Section") || in("Response", "JobsDetail", "Section")) { SectionInfo sectionInfo = sectionList.get(sectionList.size() - 1); @@ -6344,7 +6367,7 @@ protected void doEndElement(String uri, String name, String qName) { } else if (in("Response", "JobsDetail", "ListInfo", "ListResults")) { List listResults = response.getJobsDetail().getListInfo().getListResults(); if (!listResults.isEmpty()) { - ParserMediaInfoUtils.ParsingAuditingListResultInfo(listResults.get(listResults.size() - 1), name, getText()); + ParserMediaInfoUtils.parsingAuditingListResultInfo(listResults.get(listResults.size() - 1), name, getText()); } } } @@ -6436,6 +6459,15 @@ protected void doStartElement(String uri, String name, String qName, Attributes List listResults = jobList.get(jobList.size() - 1).getListInfo().getListResults(); listResults.add(new ListResult()); } + } else if (in("Response", "JobsDetail", "PornInfo") && "LibResults".equals(name)) { + jobList.get(jobList.size() - 1).getPornInfo().getLibResults().add(new LibResult()); + } else if (in("Response", "JobsDetail", "PoliticsInfo") && "LibResults".equals(name)) { + jobList.get(jobList.size() - 1).getPoliticsInfo().getLibResults().add(new LibResult()); + } else if (in("Response", "JobsDetail", "TerroristInfo") && "LibResults".equals(name) || + in("Response", "JobsDetail", "TerrorismInfo") && "LibResults".equals(name)) { + jobList.get(jobList.size() - 1).getTerroristInfo().getLibResults().add(new LibResult()); + } else if (in("Response", "JobsDetail", "AdsInfo") && "LibResults".equals(name)) { + jobList.get(jobList.size() - 1).getAdsInfo().getLibResults().add(new LibResult()); } } @@ -6450,63 +6482,35 @@ protected void doEndElement(String uri, String name, String qName) { } if (in("Response", "JobsDetail")) { - switch (name) { - case "Object": - jobsDetail.setObject(getText()); - break; - case "DataId": - jobsDetail.setDataId(getText()); - break; - case "Label": - jobsDetail.setLabel(getText()); - break; - case "Result": - jobsDetail.setResult(getText()); - break; - case "Score": - jobsDetail.setScore(getText()); - case "Text": - jobsDetail.setText(getText()); - case "SubLabel": - jobsDetail.setSubLabel(getText()); - break; - case "Code": - jobsDetail.setCode(getText()); - break; - case "Message": - jobsDetail.setMessage(getText()); - break; - case "Url": - jobsDetail.setUrl(getText()); - break; - case "JobId": - jobsDetail.setJobId(getText()); - break; - case "Category": - jobsDetail.setCategory(getText()); - break; - case "CompressionResult": - jobsDetail.setCompressionResult(getText()); - break; - default: - break; - } - }else if (in("Response","JobsDetail", "PornInfo")) { + ParserMediaInfoUtils.ParsingAuditingBatchImageJobDetail(jobsDetail, name, getText()); + } else if (in("Response", "JobsDetail", "PornInfo")) { parseInfo(jobsDetail.getPornInfo(), name, getText()); - } else if (in("Response","JobsDetail", "PoliticsInfo")) { + } else if (in("Response", "JobsDetail", "PoliticsInfo")) { parseInfo(jobsDetail.getPoliticsInfo(), name, getText()); - } else if (in("Response", "JobsDetail","TerroristInfo") || in("Response", "JobsDetail","TerrorismInfo")) { + } else if (in("Response", "JobsDetail", "TerroristInfo") || in("Response", "JobsDetail", "TerrorismInfo")) { parseInfo(jobsDetail.getTerroristInfo(), name, getText()); } else if (in("Response", "JobsDetail", "AdsInfo")) { parseInfo(jobsDetail.getAdsInfo(), name, getText()); + } else if (in("Response", "JobsDetail", "PornInfo", "LibResults")) { + List libResults = jobsDetail.getPornInfo().getLibResults(); + ParserMediaInfoUtils.parsingLastLibResult(libResults, name, getText()); + } else if (in("Response", "JobsDetail", "PoliticsInfo", "LibResults")) { + List libResults = jobsDetail.getPoliticsInfo().getLibResults(); + ParserMediaInfoUtils.parsingLastLibResult(libResults, name, getText()); + } else if (in("Response", "JobsDetail", "TerroristInfo", "LibResults") || in("Response", "JobsDetail", "TerrorismInfo", "LibResults")) { + List libResults = jobsDetail.getTerroristInfo().getLibResults(); + ParserMediaInfoUtils.parsingLastLibResult(libResults, name, getText()); + } else if (in("Response", "JobsDetail", "AdsInfo", "LibResults")) { + List libResults = jobsDetail.getAdsInfo().getLibResults(); + ParserMediaInfoUtils.parsingLastLibResult(libResults, name, getText()); } else if (in("Response", "JobsDetail", "UserInfo")) { ParserMediaInfoUtils.ParsingAuditingUserInfo(jobsDetail.getUserInfo(), name, getText()); - } else if (in("Response", "JobsDetail", "ListInfo","ListResults")) { + } else if (in("Response", "JobsDetail", "ListInfo", "ListResults")) { List listResults = jobsDetail.getListInfo().getListResults(); - if (listResults.isEmpty()){ + if (listResults.isEmpty()) { return; } - ParserMediaInfoUtils.ParsingAuditingListResultInfo(listResults.get(listResults.size()-1), name, getText()); + ParserMediaInfoUtils.parsingAuditingListResultInfo(listResults.get(listResults.size() - 1), name, getText()); } else if (in("Response", "JobsDetail", "PornInfo", "OcrResults")) { ParserMediaInfoUtils.parseOrcInfo(jobsDetail.getPornInfo().getOcrResults(), name, getText()); } else if (in("Response", "JobsDetail", "PoliticsInfo", "OcrResults")) { @@ -6694,7 +6698,7 @@ protected void doEndElement(String uri, String name, String qName) { } else if (in("Response", "JobsDetail", "ListInfo", "ListResults")) { List listResults = response.getJobsDetail().getListInfo().getListResults(); if (!listResults.isEmpty()) { - ParserMediaInfoUtils.ParsingAuditingListResultInfo(listResults.get(listResults.size() - 1), name, getText()); + ParserMediaInfoUtils.parsingAuditingListResultInfo(listResults.get(listResults.size() - 1), name, getText()); } } } @@ -6815,7 +6819,7 @@ protected void doEndElement(String uri, String name, String qName) { } else if (in("Response", "JobsDetail", "ListInfo", "ListResults")) { List listResults = response.getListInfo().getListResults(); if (!listResults.isEmpty()) { - ParserMediaInfoUtils.ParsingAuditingListResultInfo(listResults.get(listResults.size() - 1), name, getText()); + ParserMediaInfoUtils.parsingAuditingListResultInfo(listResults.get(listResults.size() - 1), name, getText()); } } } diff --git a/src/main/java/com/qcloud/cos/internal/cihandler/GenerateQrcodeHandler.java b/src/main/java/com/qcloud/cos/internal/cihandler/GenerateQrcodeHandler.java new file mode 100644 index 00000000..06d8c14b --- /dev/null +++ b/src/main/java/com/qcloud/cos/internal/cihandler/GenerateQrcodeHandler.java @@ -0,0 +1,31 @@ +package com.qcloud.cos.internal.cihandler; + +import org.xml.sax.Attributes; + + +public class GenerateQrcodeHandler extends CIAbstractHandler { + public String imageBase64 = ""; + + @Override + protected void doStartElement(String uri, String name, String qName, Attributes attrs) { + + } + + @Override + protected void doEndElement(String uri, String name, String qName) { + if (in("Response")) { + switch (name) { + case "ResultImage": + imageBase64 = getText(); + break; + default: + break; + } + } + } + + public String getResponse() { + return imageBase64; + } + +} diff --git a/src/main/java/com/qcloud/cos/internal/cihandler/GetImageStyleHandler.java b/src/main/java/com/qcloud/cos/internal/cihandler/GetImageStyleHandler.java new file mode 100644 index 00000000..0d80714e --- /dev/null +++ b/src/main/java/com/qcloud/cos/internal/cihandler/GetImageStyleHandler.java @@ -0,0 +1,42 @@ +package com.qcloud.cos.internal.cihandler; + +import com.qcloud.cos.model.ciModel.image.ImageStyleResponse; +import com.qcloud.cos.model.ciModel.image.StyleRule; +import org.xml.sax.Attributes; + +import java.util.List; + + +public class GetImageStyleHandler extends CIAbstractHandler { + public ImageStyleResponse response = new ImageStyleResponse(); + + @Override + protected void doStartElement(String uri, String name, String qName, Attributes attrs) { + List styleRule = response.getStyleRule(); + if (in("StyleList") && "StyleRule".equals(name)) { + styleRule.add(new StyleRule()); + } + } + + @Override + protected void doEndElement(String uri, String name, String qName) { + StyleRule styleRule = response.getStyleRule().get(response.getStyleRule().size() - 1); + if (in("StyleList", "StyleRule")) { + switch (name) { + case "StyleName": + styleRule.setStyleName(getText()); + break; + case "StyleBody": + styleRule.setStyleBody(getText()); + break; + default: + break; + } + } + } + + public ImageStyleResponse getResponse() { + return response; + } + +} diff --git a/src/main/java/com/qcloud/cos/model/ciModel/auditing/AudtingCommonInfo.java b/src/main/java/com/qcloud/cos/model/ciModel/auditing/AudtingCommonInfo.java index 9127297c..10c72180 100644 --- a/src/main/java/com/qcloud/cos/model/ciModel/auditing/AudtingCommonInfo.java +++ b/src/main/java/com/qcloud/cos/model/ciModel/auditing/AudtingCommonInfo.java @@ -50,6 +50,8 @@ public class AudtingCommonInfo { private List objectResults = new ArrayList<>(); + private List libResults; + public AudtingCommonInfo() { } @@ -153,20 +155,33 @@ public void setCategory(String category) { this.category = category; } + public List getLibResults() { + if (libResults == null) { + libResults = new ArrayList<>(); + } + return libResults; + } + + public void setLibResults(List libResults) { + this.libResults = libResults; + } + @Override public String toString() { - return "AudtingCommonInfo{" + - "code='" + code + '\'' + - ", msg='" + msg + '\'' + - ", hitFlag='" + hitFlag + '\'' + - ", score='" + score + '\'' + - ", label='" + label + '\'' + - ", keywords='" + keywords + '\'' + - ", count='" + count + '\'' + - ", subLabel='" + subLabel + '\'' + - ", ocrResults=" + ocrResults + - ", category='" + category + '\'' + - ", objectResults=" + objectResults + - '}'; + final StringBuffer sb = new StringBuffer("AudtingCommonInfo{"); + sb.append("code='").append(code).append('\''); + sb.append(", msg='").append(msg).append('\''); + sb.append(", hitFlag='").append(hitFlag).append('\''); + sb.append(", score='").append(score).append('\''); + sb.append(", label='").append(label).append('\''); + sb.append(", keywords='").append(keywords).append('\''); + sb.append(", count='").append(count).append('\''); + sb.append(", subLabel='").append(subLabel).append('\''); + sb.append(", ocrResults=").append(ocrResults); + sb.append(", category='").append(category).append('\''); + sb.append(", objectResults=").append(objectResults); + sb.append(", libResults=").append(libResults); + sb.append('}'); + return sb.toString(); } } diff --git a/src/main/java/com/qcloud/cos/model/ciModel/auditing/BatchImageJobDetail.java b/src/main/java/com/qcloud/cos/model/ciModel/auditing/BatchImageJobDetail.java index da06c7ab..fe4f8f13 100644 --- a/src/main/java/com/qcloud/cos/model/ciModel/auditing/BatchImageJobDetail.java +++ b/src/main/java/com/qcloud/cos/model/ciModel/auditing/BatchImageJobDetail.java @@ -1,6 +1,9 @@ package com.qcloud.cos.model.ciModel.auditing; +import java.util.ArrayList; +import java.util.List; + public class BatchImageJobDetail { private String dataId; private String jobId; @@ -14,6 +17,7 @@ public class BatchImageJobDetail { private String code; private String message; private String url; + private String state; private String compressionResult; private PornInfo pornInfo; private TerroristInfo terroristInfo; @@ -195,27 +199,39 @@ public void setListInfo(ListInfo listInfo) { this.listInfo = listInfo; } + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + @Override public String toString() { - return "BatchImageJobDetail{" + - "dataId='" + dataId + '\'' + - ", jobId='" + jobId + '\'' + - ", category='" + category + '\'' + - ", label='" + label + '\'' + - ", result='" + result + '\'' + - ", object='" + object + '\'' + - ", score='" + score + '\'' + - ", subLabel='" + subLabel + '\'' + - ", text='" + text + '\'' + - ", code='" + code + '\'' + - ", message='" + message + '\'' + - ", url='" + url + '\'' + - ", pornInfo=" + pornInfo + - ", terroristInfo=" + terroristInfo + - ", politicsInfo=" + politicsInfo + - ", adsInfo=" + adsInfo + - ", userInfo=" + userInfo + - ", ocrResults=" + ocrResults + - '}'; + final StringBuffer sb = new StringBuffer("BatchImageJobDetail{"); + sb.append("dataId='").append(dataId).append('\''); + sb.append(", jobId='").append(jobId).append('\''); + sb.append(", category='").append(category).append('\''); + sb.append(", label='").append(label).append('\''); + sb.append(", result='").append(result).append('\''); + sb.append(", object='").append(object).append('\''); + sb.append(", score='").append(score).append('\''); + sb.append(", subLabel='").append(subLabel).append('\''); + sb.append(", text='").append(text).append('\''); + sb.append(", code='").append(code).append('\''); + sb.append(", message='").append(message).append('\''); + sb.append(", url='").append(url).append('\''); + sb.append(", state='").append(state).append('\''); + sb.append(", compressionResult='").append(compressionResult).append('\''); + sb.append(", pornInfo=").append(pornInfo); + sb.append(", terroristInfo=").append(terroristInfo); + sb.append(", politicsInfo=").append(politicsInfo); + sb.append(", adsInfo=").append(adsInfo); + sb.append(", userInfo=").append(userInfo); + sb.append(", listInfo=").append(listInfo); + sb.append(", ocrResults=").append(ocrResults); + sb.append('}'); + return sb.toString(); } } diff --git a/src/main/java/com/qcloud/cos/model/ciModel/auditing/LibResult.java b/src/main/java/com/qcloud/cos/model/ciModel/auditing/LibResult.java new file mode 100644 index 00000000..d33c3501 --- /dev/null +++ b/src/main/java/com/qcloud/cos/model/ciModel/auditing/LibResult.java @@ -0,0 +1,32 @@ +package com.qcloud.cos.model.ciModel.auditing; + + +public class LibResult { + private String imageId; + private String score; + + public String getImageId() { + return imageId; + } + + public void setImageId(String imageId) { + this.imageId = imageId; + } + + public String getScore() { + return score; + } + + public void setScore(String score) { + this.score = score; + } + + @Override + public String toString() { + final StringBuffer sb = new StringBuffer("LibResult{"); + sb.append("imageId='").append(imageId).append('\''); + sb.append(", score='").append(score).append('\''); + sb.append('}'); + return sb.toString(); + } +} diff --git a/src/main/java/com/qcloud/cos/model/ciModel/auditing/ListInfo.java b/src/main/java/com/qcloud/cos/model/ciModel/auditing/ListInfo.java index 60fc1843..65616cd6 100644 --- a/src/main/java/com/qcloud/cos/model/ciModel/auditing/ListInfo.java +++ b/src/main/java/com/qcloud/cos/model/ciModel/auditing/ListInfo.java @@ -19,4 +19,12 @@ public List getListResults() { public void setListResults(List listResults) { this.listResults = listResults; } + + @Override + public String toString() { + final StringBuffer sb = new StringBuffer("ListInfo{"); + sb.append("listResults=").append(listResults); + sb.append('}'); + return sb.toString(); + } } diff --git a/src/main/java/com/qcloud/cos/model/ciModel/image/GenerateQrcodeRequest.java b/src/main/java/com/qcloud/cos/model/ciModel/image/GenerateQrcodeRequest.java new file mode 100644 index 00000000..983b0a15 --- /dev/null +++ b/src/main/java/com/qcloud/cos/model/ciModel/image/GenerateQrcodeRequest.java @@ -0,0 +1,67 @@ +package com.qcloud.cos.model.ciModel.image; + +import com.qcloud.cos.internal.CosServiceRequest; + +public class GenerateQrcodeRequest extends CosServiceRequest { + /** + * bucket信息 + */ + private String bucketName; + /** + * 可识别的二维码文本信息 + */ + private String qrcodeContent; + /** + * 生成的二维码类型,可选值:0或1。 + * 0为二维码,1为条形码,默认值为0 + */ + private String mode; + + /** + * 指定生成的二维码或条形码的宽度,高度会进行等比压缩 + */ + private String width; + + public String getQrcodeContent() { + return qrcodeContent; + } + + public void setQrcodeContent(String qrcodeContent) { + this.qrcodeContent = qrcodeContent; + } + + public String getMode() { + return mode; + } + + public void setMode(String mode) { + this.mode = mode; + } + + public String getWidth() { + return width; + } + + public void setWidth(String width) { + this.width = width; + } + + public String getBucketName() { + return bucketName; + } + + public void setBucketName(String bucketName) { + this.bucketName = bucketName; + } + + @Override + public String toString() { + final StringBuffer sb = new StringBuffer("GenerateQrcodeRequest{"); + sb.append("bucketName='").append(bucketName).append('\''); + sb.append(", qrcodeContent='").append(qrcodeContent).append('\''); + sb.append(", mode='").append(mode).append('\''); + sb.append(", width='").append(width).append('\''); + sb.append('}'); + return sb.toString(); + } +} diff --git a/src/main/java/com/qcloud/cos/model/ciModel/image/ImageStyleRequest.java b/src/main/java/com/qcloud/cos/model/ciModel/image/ImageStyleRequest.java new file mode 100644 index 00000000..51e50703 --- /dev/null +++ b/src/main/java/com/qcloud/cos/model/ciModel/image/ImageStyleRequest.java @@ -0,0 +1,53 @@ +package com.qcloud.cos.model.ciModel.image; + + +import com.qcloud.cos.internal.CIPicServiceRequest; + +public class ImageStyleRequest extends CIPicServiceRequest { + /** + * bucket信息 + */ + private String bucketName; + /** + * 样式名称 + */ + private String styleName; + /** + * 样式详情 + */ + private String styleBody; + + public String getBucketName() { + return bucketName; + } + + public void setBucketName(String bucketName) { + this.bucketName = bucketName; + } + + public String getStyleName() { + return styleName; + } + + public void setStyleName(String styleName) { + this.styleName = styleName; + } + + public String getStyleBody() { + return styleBody; + } + + public void setStyleBody(String styleBody) { + this.styleBody = styleBody; + } + + @Override + public String toString() { + final StringBuffer sb = new StringBuffer("ImageStyleRequest{"); + sb.append("bucketName='").append(bucketName).append('\''); + sb.append(", styleName='").append(styleName).append('\''); + sb.append(", styleBody='").append(styleBody).append('\''); + sb.append('}'); + return sb.toString(); + } +} diff --git a/src/main/java/com/qcloud/cos/model/ciModel/image/ImageStyleResponse.java b/src/main/java/com/qcloud/cos/model/ciModel/image/ImageStyleResponse.java new file mode 100644 index 00000000..b693ce4e --- /dev/null +++ b/src/main/java/com/qcloud/cos/model/ciModel/image/ImageStyleResponse.java @@ -0,0 +1,39 @@ +package com.qcloud.cos.model.ciModel.image; + + +import com.qcloud.cos.internal.CIPicServiceRequest; + +import java.util.ArrayList; +import java.util.List; + +public class ImageStyleResponse extends CIPicServiceRequest { + /** + * bucket信息 + */ + private String bucketName; + + /** + * 样式规则 + */ + private List styleRule; + + + public String getBucketName() { + return bucketName; + } + + public void setBucketName(String bucketName) { + this.bucketName = bucketName; + } + + public List getStyleRule() { + if (styleRule == null) { + styleRule = new ArrayList<>(); + } + return styleRule; + } + + public void setStyleRule(List styleRule) { + this.styleRule = styleRule; + } +} diff --git a/src/main/java/com/qcloud/cos/model/ciModel/image/StyleRule.java b/src/main/java/com/qcloud/cos/model/ciModel/image/StyleRule.java new file mode 100644 index 00000000..12d12997 --- /dev/null +++ b/src/main/java/com/qcloud/cos/model/ciModel/image/StyleRule.java @@ -0,0 +1,37 @@ +package com.qcloud.cos.model.ciModel.image; + +public class StyleRule { + /** + * 样式名称 + */ + private String styleName; + /** + * 样式详情 + */ + private String styleBody; + + public String getStyleName() { + return styleName; + } + + public void setStyleName(String styleName) { + this.styleName = styleName; + } + + public String getStyleBody() { + return styleBody; + } + + public void setStyleBody(String styleBody) { + this.styleBody = styleBody; + } + + @Override + public String toString() { + final StringBuffer sb = new StringBuffer("StyleRule{"); + sb.append("styleName='").append(styleName).append('\''); + sb.append(", styleBody='").append(styleBody).append('\''); + sb.append('}'); + return sb.toString(); + } +} diff --git a/src/main/java/com/qcloud/cos/model/ciModel/xml/CImageXmlFactory.java b/src/main/java/com/qcloud/cos/model/ciModel/xml/CImageXmlFactory.java index 9314f9c8..b28484af 100644 --- a/src/main/java/com/qcloud/cos/model/ciModel/xml/CImageXmlFactory.java +++ b/src/main/java/com/qcloud/cos/model/ciModel/xml/CImageXmlFactory.java @@ -2,6 +2,7 @@ import com.qcloud.cos.internal.XmlWriter; import com.qcloud.cos.model.ciModel.image.ImageSearchRequest; +import com.qcloud.cos.model.ciModel.image.ImageStyleRequest; import com.qcloud.cos.model.ciModel.image.OpenImageSearchRequest; /** @@ -33,4 +34,37 @@ public static byte[] convertToXmlByteArray(ImageSearchRequest imageSearchRequest xml.end(); return xml.getBytes(); } + + /** + * 增加样式请求转换 + */ + public static byte[] addStyleConvertToXmlByteArray(ImageStyleRequest imageStyleRequest) { + XmlWriter xml = new XmlWriter(); + xml.start("AddStyle"); + CIMediaXmlFactory.addIfNotNull(xml, "StyleName", imageStyleRequest.getStyleName()); + CIMediaXmlFactory.addIfNotNull(xml, "StyleBody", imageStyleRequest.getStyleBody()); + xml.end(); + return xml.getBytes(); + } + /** + * 查询样式请求转换 + */ + public static byte[] getStyleConvertToXmlByteArray(ImageStyleRequest imageStyleRequest) { + XmlWriter xml = new XmlWriter(); + xml.start("GetStyle"); + CIMediaXmlFactory.addIfNotNull(xml, "StyleName", imageStyleRequest.getStyleName()); + xml.end(); + return xml.getBytes(); + } + /** + * 删除样式请求转换 + */ + public static byte[] deleteStyleConvertToXmlByteArray(ImageStyleRequest imageStyleRequest) { + XmlWriter xml = new XmlWriter(); + xml.start("DeleteStyle"); + CIMediaXmlFactory.addIfNotNull(xml, "StyleName", imageStyleRequest.getStyleName()); + xml.end(); + return xml.getBytes(); + } + }