Skip to content

Commit ce24ff3

Browse files
authored
Merge pull request #220 from 563750789/master
update to 5.6.231
2 parents ea30e1d + 0cfac6c commit ce24ff3

37 files changed

+803
-224
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.qcloud</groupId>
66
<artifactId>cos_api</artifactId>
7-
<version>5.6.228</version>
7+
<version>5.6.231</version>
88
<packaging>jar</packaging>
99
<name>cos-java-sdk</name>
1010
<description>java sdk for qcloud cos</description>

src/main/java/com/qcloud/cos/COSClient.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4970,6 +4970,14 @@ public MediaJobResponseV2 describeMediaJobV2(MediaJobsRequestV2 req) {
49704970
rejectNull(req.getJobId(),
49714971
"The jobId parameter must be specified setting the object tags");
49724972
CosHttpRequest<MediaJobsRequestV2> request = createRequest(req.getBucketName(), "/jobs/" + req.getJobId(), req, HttpMethodName.GET);
4973+
addParameterIfNotNull(request, "queueId", req.getQueueId());
4974+
addParameterIfNotNull(request, "tag", req.getTag());
4975+
addParameterIfNotNull(request, "orderByTime", req.getOrderByTime());
4976+
addParameterIfNotNull(request, "nextToken", req.getNextToken());
4977+
addParameterIfNotNull(request, "size", req.getSize().toString());
4978+
addParameterIfNotNull(request, "states", req.getStates());
4979+
addParameterIfNotNull(request, "startCreationTime", req.getStartCreationTime());
4980+
addParameterIfNotNull(request, "endCreationTime", req.getEndCreationTime());
49734981
return invoke(request,new Unmarshallers.CICommonUnmarshaller<MediaJobResponseV2>(MediaJobResponseV2.class));
49744982
}
49754983

src/main/java/com/qcloud/cos/demo/ci/BlindWatermarkDemo.java

Lines changed: 27 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,8 @@
33
import com.qcloud.cos.COSClient;
44
import com.qcloud.cos.exception.CosClientException;
55
import com.qcloud.cos.exception.CosServiceException;
6+
import com.qcloud.cos.model.*;
67
import com.qcloud.cos.model.ciModel.common.ImageProcessRequest;
7-
import com.qcloud.cos.model.CompleteMultipartUploadRequest;
8-
import com.qcloud.cos.model.CompleteMultipartUploadResult;
9-
import com.qcloud.cos.model.InitiateMultipartUploadRequest;
10-
import com.qcloud.cos.model.InitiateMultipartUploadResult;
11-
import com.qcloud.cos.model.PartETag;
12-
import com.qcloud.cos.model.PutObjectRequest;
13-
import com.qcloud.cos.model.PutObjectResult;
14-
import com.qcloud.cos.model.UploadPartRequest;
15-
import com.qcloud.cos.model.UploadPartResult;
16-
import com.qcloud.cos.model.UploadResult;
178
import com.qcloud.cos.model.ciModel.persistence.CIObject;
189
import com.qcloud.cos.model.ciModel.persistence.CIUploadResult;
1910
import com.qcloud.cos.model.ciModel.persistence.PicOperations;
@@ -27,25 +18,25 @@
2718
import java.util.List;
2819

2920
/**
30-
* 盲水印相关demo API 接口说明:https://cloud.tencent.com/document/product/460/19017
21+
* 盲水印相关demo API 接口说明:https://cloud.tencent.com/document/product/436/46782
3122
*/
3223
public class BlindWatermarkDemo {
24+
/**
25+
* 上传时添加盲水印
26+
*/
3327
public static void addBlindWatermark(COSClient cosClient) {
34-
// bucket名需包含appid
35-
// api 请参考:https://cloud.tencent.com/document/product/436/46782
36-
String bucketName = "examplebucket-1250000000";
37-
38-
String key = "qrcode.png";
39-
File localFile = new File("E://qrcode.png");
28+
String bucketName = "demo-123456789";
29+
String key = "qrcode.jpg";
30+
File localFile = new File("demo.jpg");
4031
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);
4132
PicOperations picOperations = new PicOperations();
4233
picOperations.setIsPicInfo(1);
4334
List<PicOperations.Rule> ruleList = new LinkedList<>();
4435
PicOperations.Rule rule = new PicOperations.Rule();
4536
rule.setBucket(bucketName);
46-
rule.setFileId("qrcode-watermark.png");
37+
rule.setFileId("BlindWatermark.jpg");
4738
// 使用盲水印功能,水印图的宽高不得超过原图的1/8
48-
rule.setRule("watermark/3/type/2/image/aHR0cDovL2V4YW1wbGVidWNrZXQtMTI1MDAwMDAwMC5jb3MuYXAtZ3Vhbmd6aG91Lm15cWNsb3VkLmNvbS9zaHVpeWluLnBuZw==");
39+
rule.setRule("watermark/3/type/3/text/bWFyayB0ZXN0/version/3.0");
4940

5041
ruleList.add(rule);
5142
picOperations.setRules(ruleList);
@@ -65,100 +56,23 @@ public static void addBlindWatermark(COSClient cosClient) {
6556
}
6657
}
6758

68-
public static void addBlindWatermarkWithTransferManager(TransferManager transferManager) throws InterruptedException {
69-
// bucket名需包含appid
70-
// api 请参考:https://cloud.tencent.com/document/product/436/46782
71-
String bucketName = "examplebucket-1250000000";
72-
String key = "qrcode.png";
73-
File localFile = new File("E://qrcode.png");
74-
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);
75-
PicOperations picOperations = new PicOperations();
76-
picOperations.setIsPicInfo(1);
77-
List<PicOperations.Rule> ruleList = new LinkedList<>();
78-
PicOperations.Rule rule1 = new PicOperations.Rule();
79-
rule1.setBucket(bucketName);
80-
rule1.setFileId("qrcode-watermark.png");
81-
rule1.setRule("watermark/3/type/3/text/dGVuY2VudCBjbG91ZA==");
82-
ruleList.add(rule1);
83-
picOperations.setRules(ruleList);
84-
putObjectRequest.setPicOperations(picOperations);
85-
86-
Upload upload = transferManager.upload(putObjectRequest);
87-
UploadResult uploadResult = upload.waitForUploadResult();
88-
CIUploadResult ciUploadResult = uploadResult.getCiUploadResult();
89-
System.out.println(uploadResult.getRequestId());
90-
System.out.println(ciUploadResult.getOriginalInfo().getEtag());
91-
for(CIObject ciObject:ciUploadResult.getProcessResults().getObjectList()) {
92-
System.out.println(ciObject.getLocation());
93-
}
94-
}
95-
96-
public static void addBlindWatermarkWithMultipart(COSClient cosClient) throws FileNotFoundException {
97-
// bucket名需包含appid
98-
// api 请参考:https://cloud.tencent.com/document/product/436/46782
99-
String bucketName = "examplebucket-1250000000";
100-
101-
String key = "qrcode.png";
102-
File localFile = new File("E://qrcode.png");
103-
InitiateMultipartUploadRequest request = new InitiateMultipartUploadRequest(bucketName, key);
104-
InitiateMultipartUploadResult initResult = cosClient.initiateMultipartUpload(request);
105-
String uploadId = initResult.getUploadId();
106-
107-
// 上传分块
108-
List<PartETag> partETags = new LinkedList<>();
109-
UploadPartRequest uploadPartRequest = new UploadPartRequest();
110-
uploadPartRequest.setBucketName(bucketName);
111-
uploadPartRequest.setKey(key);
112-
uploadPartRequest.setUploadId(uploadId);
113-
// 设置分块的数据来源输入流
114-
uploadPartRequest.setInputStream(new FileInputStream(localFile));
115-
// 设置分块的长度
116-
uploadPartRequest.setPartSize(localFile.length()); // 设置数据长度
117-
uploadPartRequest.setPartNumber(1); // 假设要上传的part编号是10
118-
UploadPartResult uploadPartResult = cosClient.uploadPart(uploadPartRequest);
119-
PartETag partETag = uploadPartResult.getPartETag();
120-
partETags.add(partETag);
121-
122-
// 合并分块并带上图像处理参数
123-
CompleteMultipartUploadRequest completeMultipartUploadRequest =
124-
new CompleteMultipartUploadRequest(bucketName, key, uploadId, partETags);
125-
PicOperations picOperations = new PicOperations();
126-
picOperations.setIsPicInfo(1);
127-
List<PicOperations.Rule> ruleList = new LinkedList<>();
128-
PicOperations.Rule rule1 = new PicOperations.Rule();
129-
rule1.setBucket(bucketName);
130-
rule1.setFileId("qrcode-watermark.png");
131-
rule1.setRule("watermark/3/type/3/text/dGVuY2VudCBjbG91ZA==");
132-
ruleList.add(rule1);
133-
picOperations.setRules(ruleList);
134-
completeMultipartUploadRequest.setPicOperations(picOperations);
135-
136-
CompleteMultipartUploadResult completeMultipartUploadResult =
137-
cosClient.completeMultipartUpload(completeMultipartUploadRequest);
138-
139-
CIUploadResult ciUploadResult = completeMultipartUploadResult.getCiUploadResult();
140-
System.out.println(completeMultipartUploadResult.getRequestId());
141-
System.out.println(ciUploadResult.getOriginalInfo().getEtag());
142-
for(CIObject ciObject:ciUploadResult.getProcessResults().getObjectList()) {
143-
System.out.println(ciObject.getLocation());
144-
}
145-
}
146-
147-
public static void extractBlindWatermark(COSClient cosClient) {
148-
// bucket名需包含appid
149-
// api 请参考:https://cloud.tencent.com/document/product/436/46782
150-
String bucketName = "examplebucket-1250000000";
151-
152-
String key = "qrcode-watermark.png";
153-
File localFile = new File("E://qrcode-watermark.png");
59+
/**
60+
* 上传时获取盲水印
61+
*/
62+
public static void getBlindWatermark(COSClient cosClient) {
63+
String bucketName = "demo-123456789";
64+
String key = "qrcode.jpg";
65+
File localFile = new File("BlindWatermark.jpg");
15466
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);
15567
PicOperations picOperations = new PicOperations();
15668
picOperations.setIsPicInfo(1);
15769
List<PicOperations.Rule> ruleList = new LinkedList<>();
15870
PicOperations.Rule rule = new PicOperations.Rule();
15971
rule.setBucket(bucketName);
160-
rule.setFileId("qrcode-watermark-extract.png");
161-
rule.setRule("watermark/4/type/2/image/aHR0cDovL2V4YW1wbGVidWNrZXQtMTI1MDAwMDAwMC5jb3MuYXAtZ3Vhbmd6aG91Lm15cWNsb3VkLmNvbS9zaHVpeWluLnBuZw==");
72+
rule.setFileId("BlindWatermark-test.jpg");
73+
// 使用盲水印功能,水印图的宽高不得超过原图的1/8
74+
rule.setRule("watermark/4/type/3/version/3.0");
75+
16276
ruleList.add(rule);
16377
picOperations.setRules(ruleList);
16478
putObjectRequest.setPicOperations(picOperations);
@@ -169,7 +83,6 @@ public static void extractBlindWatermark(COSClient cosClient) {
16983
System.out.println(ciUploadResult.getOriginalInfo().getEtag());
17084
for(CIObject ciObject:ciUploadResult.getProcessResults().getObjectList()) {
17185
System.out.println(ciObject.getLocation());
172-
System.out.println(ciObject.getWatermarkStatus());
17386
}
17487
} catch (CosServiceException e) {
17588
e.printStackTrace();
@@ -192,7 +105,7 @@ public static void addBlindWatermarkToExistImage(COSClient cosClient) {
192105
rule.setBucket(bucketName);
193106
rule.setFileId("/image/result/dog.jpg");
194107
// 使用盲水印功能,水印图的宽高不得超过原图的1/8
195-
rule.setRule("watermark/3/type/2/image/aHR0cDovL2V4YW1wbGVidWNrZXQtMTI1MDAwMDAwMC5jb3MuYXAtZ3Vhbmd6aG91Lm15cWNsb3VkLmNvbS9zaHVpeWluLnBuZw==");
108+
rule.setRule("watermark/3/type/2/image/aHR0cHM6Ly9tYXJranJ6aGFuZy0xMjUxNzA0NzA4LmNvcy5hcC1jaG9uZ3FpbmcubXlxY2xvdWQuY29tL3NodWl5aW4uanBn");
196109

197110
ruleList.add(rule);
198111
picOperations.setRules(ruleList);
@@ -210,6 +123,9 @@ public static void addBlindWatermarkToExistImage(COSClient cosClient) {
210123
}
211124
}
212125

126+
/**
127+
* 云上数据处理
128+
*/
213129
public static void extractBlindWatermarkFromExistImage(COSClient cosClient) {
214130
// bucket名需包含appid
215131
// api 请参考:https://cloud.tencent.com/document/product/436/46782
@@ -224,7 +140,7 @@ public static void extractBlindWatermarkFromExistImage(COSClient cosClient) {
224140
rule.setBucket(bucketName);
225141
rule.setFileId("/image/result/extract-shuiyin.jpg");
226142
// 抽取盲水印
227-
rule.setRule("watermark/4/type/2/image/aHR0cDovL2V4YW1wbGVidWNrZXQtMTI1MDAwMDAwMC5jb3MuYXAtZ3Vhbmd6aG91Lm15cWNsb3VkLmNvbS9zaHVpeWluLnBuZw==");
143+
rule.setRule("watermark/4/type/3/image/aHR0cDovL2V4YW1wbGVidWNrZXQtMTI1MDAwMDAwMC5jb3MuYXAtZ3Vhbmd6aG91Lm15cWNsb3VkLmNvbS9zaHVpeWluLnBuZw==");
228144

229145
ruleList.add(rule);
230146
picOperations.setRules(ruleList);
@@ -244,10 +160,7 @@ public static void extractBlindWatermarkFromExistImage(COSClient cosClient) {
244160

245161
public static void main(String[] args) throws Exception {
246162
COSClient cosClient = ClientUtils.getTestClient();
247-
// addBlindWatermark(cosClient);
248-
// extractBlindWatermark(cosClient);
249-
addBlindWatermarkToExistImage(cosClient);
250-
extractBlindWatermarkFromExistImage(cosClient);
163+
getBlindWatermark(cosClient);
251164
cosClient.shutdown();
252165
}
253166
}

src/main/java/com/qcloud/cos/demo/ci/JobDemo.java

Lines changed: 26 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,16 @@
44
import com.qcloud.cos.model.ciModel.job.MediaAudioObject;
55
import com.qcloud.cos.model.ciModel.job.MediaContainerObject;
66
import com.qcloud.cos.model.ciModel.job.MediaJobObject;
7-
import com.qcloud.cos.model.ciModel.job.MediaJobOperation;
87
import com.qcloud.cos.model.ciModel.job.MediaJobResponse;
98
import com.qcloud.cos.model.ciModel.job.MediaJobsRequest;
109
import com.qcloud.cos.model.ciModel.job.MediaListJobResponse;
1110
import com.qcloud.cos.model.ciModel.job.MediaTimeIntervalObject;
1211
import com.qcloud.cos.model.ciModel.job.MediaTransConfigObject;
1312
import com.qcloud.cos.model.ciModel.job.MediaTranscodeObject;
1413
import com.qcloud.cos.model.ciModel.job.MediaTranscodeVideoObject;
14+
import com.qcloud.cos.model.ciModel.job.v2.MediaJobOperation;
15+
import com.qcloud.cos.model.ciModel.job.v2.MediaJobResponseV2;
16+
import com.qcloud.cos.model.ciModel.job.v2.MediaJobsRequestV2;
1517

1618
import java.io.UnsupportedEncodingException;
1719
import java.util.List;
@@ -25,7 +27,7 @@ public static void main(String[] args) throws Exception {
2527
// 1 初始化用户身份信息(secretId, secretKey)。
2628
COSClient client = ClientUtils.getTestClient();
2729
// 2 调用要使用的方法。
28-
createMediaJobs(client);
30+
describeMediaJob(client);
2931
}
3032

3133
/**
@@ -36,19 +38,19 @@ public static void main(String[] args) throws Exception {
3638
*/
3739
public static void createMediaJobs(COSClient client) throws UnsupportedEncodingException {
3840
//1.创建任务请求对象
39-
MediaJobsRequest request = new MediaJobsRequest();
41+
MediaJobsRequestV2 request = new MediaJobsRequestV2();
4042
//2.添加请求参数 参数详情请见api接口文档
41-
request.setBucketName("DemoBucket-123456789");
43+
request.setBucketName("demo-123456789");
4244
request.setTag("Transcode");
4345
request.getInput().setObject("1.mp4");
4446
request.getOperation().setTemplateId("t0e09a9456d4124542b1f0e44d501*****");
45-
request.getOperation().getOutput().setBucket("DemoBucket-123456789");
47+
request.getOperation().getOutput().setBucket("demo-123456789");
4648
request.getOperation().getOutput().setRegion("ap-chongqing");
4749
request.getOperation().getOutput().setObject("2.mp4");
4850
request.setCallBack("https://cloud.tencent.com/xxx");
4951
// request.setCallBackFormat("json");
5052
//3.调用接口,获取任务响应对象
51-
MediaJobResponse response = client.createMediaJobs(request);
53+
MediaJobResponseV2 response = client.createMediaJobsV2(request);
5254
System.out.println(response);
5355
}
5456

@@ -60,14 +62,15 @@ public static void createMediaJobs(COSClient client) throws UnsupportedEncodingE
6062
*/
6163
public static void createMediaJobs2(COSClient client) throws UnsupportedEncodingException {
6264
//1.创建任务请求对象
63-
MediaJobsRequest request = new MediaJobsRequest();
65+
MediaJobsRequestV2 request = new MediaJobsRequestV2();
6466
//2.添加请求参数 参数详情请见api接口文档
65-
request.setBucketName("DemoBucket-123456789");
67+
request.setBucketName("demo-123456789");
6668
request.setTag("Transcode");
67-
request.getInput().setObject("1.mp4");
69+
request.getInput().setObject("2.mp4");
6870
//2.1添加媒体任务操作参数
69-
MediaTranscodeObject transcode = request.getOperation().getTranscode();
7071
MediaJobOperation operation = request.getOperation();
72+
operation.setFreeTranscode("true");
73+
MediaTranscodeObject transcode = operation.getTranscode();
7174
MediaContainerObject container = transcode.getContainer();
7275
container.setFormat("mp4");
7376
MediaTranscodeVideoObject video = transcode.getVideo();
@@ -91,17 +94,17 @@ public static void createMediaJobs2(COSClient client) throws UnsupportedEncoding
9194
timeInterval.setDuration("60");
9295

9396
MediaTransConfigObject transConfig = transcode.getTransConfig();
94-
// transConfig.setAdjDarMethod("scale");
95-
// transConfig.setIsCheckAudioBitrate("false");
96-
// transConfig.setResoAdjMethod("1");
97+
transConfig.setAdjDarMethod("scale");
98+
transConfig.setIsCheckAudioBitrate("false");
99+
transConfig.setResoAdjMethod("1");
97100

98-
request.getOperation().getOutput().setBucket("DemoBucket-123456789");
99-
request.getOperation().getOutput().setRegion("ap-chongqing");
100-
request.getOperation().getOutput().setObject("demo1.mp4");
101+
operation.getOutput().setBucket("demo-123456789");
102+
operation.getOutput().setRegion("ap-chongqing");
103+
operation.getOutput().setObject("demo1.mp4");
101104
request.setCallBack("https://cloud.tencent.com/xxx");
102105
//3.调用接口,获取任务响应对象
103-
MediaJobResponse response = client.createMediaJobs(request);
104-
System.out.println(response.getJobsDetail().getOperation().getTranscode());
106+
MediaJobResponseV2 response = client.createMediaJobsV2(request);
107+
System.out.println(response.getJobsDetail().getJobId());
105108
}
106109

107110
/**
@@ -113,23 +116,18 @@ public static void describeMediaJob(COSClient client) {
113116
//1.创建任务请求对象
114117
MediaJobsRequest request = new MediaJobsRequest();
115118
//2.添加请求参数 参数详情请见api接口文档
116-
request.setBucketName("DemoBucket-123456789");
117-
request.setJobId("j2b27107ee3ad11ebbf6d73cb5317****");
119+
request.setBucketName("demo-123456789");
120+
request.setJobId("j0668d96a5ba111efad510f605e2fde87");
118121
//3.调用接口,获取任务响应对象
119122
MediaJobResponse response = client.describeMediaJob(request);
120-
System.out.println(response.getJobsDetail().getOperation().getTranscode());
123+
System.out.println(response.getJobsDetail().getState());
121124
}
122125

123-
/**
124-
* describeMediaJobs 查询任务列表
125-
*
126-
* @param client
127-
*/
128126
public static void describeMediaJobs(COSClient client) {
129127
//1.创建任务请求对象
130128
MediaJobsRequest request = new MediaJobsRequest();
131129
//2.添加请求参数 参数详情请见api接口文档
132-
request.setBucketName("DemoBucket-123456789");
130+
request.setBucketName("demo-123456789");
133131
request.setTag("Transcode");
134132
//3.调用接口,获取任务响应对象
135133
MediaListJobResponse response = client.describeMediaJobs(request);
@@ -139,16 +137,11 @@ public static void describeMediaJobs(COSClient client) {
139137
}
140138
}
141139

142-
/**
143-
* cancelMediaJob 取消任务
144-
*
145-
* @param client
146-
*/
147140
public static void cancelMediaJob(COSClient client) {
148141
//1.创建任务请求对象
149142
MediaJobsRequest request = new MediaJobsRequest();
150143
//2.添加请求参数 参数详情请见api接口文档
151-
request.setBucketName("DemoBucket-123456789");
144+
request.setBucketName("demo-123456789");
152145
request.setJobId("jbfb0d02a092111ebb3167781d*****");
153146
//3.调用接口,获取任务响应对象
154147
Boolean response = client.cancelMediaJob(request);

0 commit comments

Comments
 (0)