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();
+ }
+
}