Skip to content

Commit 24346ce

Browse files
authored
Merge pull request #201 from 563750789/master
update to 5.6.517
2 parents 463153f + e7a5028 commit 24346ce

File tree

90 files changed

+4105
-762
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+4105
-762
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<dependency>
99
<groupId>com.qcloud</groupId>
1010
<artifactId>cos_api</artifactId>
11-
<version>5.6.155</version>
11+
<version>5.6.213</version>
1212
</dependency>
1313
```
1414

pom.xml

Lines changed: 8 additions & 2 deletions
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.212</version>
7+
<version>5.6.217</version>
88
<packaging>jar</packaging>
99
<name>cos-java-sdk</name>
1010
<description>java sdk for qcloud cos</description>
@@ -150,6 +150,12 @@
150150
<artifactId>xstream</artifactId>
151151
<version>1.4.20</version>
152152
</dependency>
153+
154+
<dependency>
155+
<groupId>com.auth0</groupId>
156+
<artifactId>java-jwt</artifactId>
157+
<version>4.4.0</version>
158+
</dependency>
153159
</dependencies>
154160

155161
<distributionManagement>
@@ -339,4 +345,4 @@
339345
</build>
340346
</profile>
341347
</profiles>
342-
</project>
348+
</project>

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

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,7 @@
3131
import com.qcloud.cos.model.bucketcertificate.BucketGetDomainCertificate;
3232
import com.qcloud.cos.model.bucketcertificate.BucketPutDomainCertificate;
3333
import com.qcloud.cos.model.bucketcertificate.SetBucketDomainCertificateRequest;
34-
import com.qcloud.cos.model.ciModel.ai.AddPersonFaceRequest;
35-
import com.qcloud.cos.model.ciModel.ai.AddPersonFaceResponse;
36-
import com.qcloud.cos.model.ciModel.ai.CreatePersonRequest;
37-
import com.qcloud.cos.model.ciModel.ai.CreatePersonResponse;
38-
import com.qcloud.cos.model.ciModel.ai.DeletePersonFaceRequest;
39-
import com.qcloud.cos.model.ciModel.ai.FaceSearchBucketRequest;
40-
import com.qcloud.cos.model.ciModel.ai.SearchPersonFaceRequest;
41-
import com.qcloud.cos.model.ciModel.ai.SearchPersonFaceResponse;
34+
import com.qcloud.cos.model.ciModel.ai.*;
4235
import com.qcloud.cos.model.ciModel.common.CImageProcessRequest;
4336
import com.qcloud.cos.model.ciModel.hls.*;
4437
import com.qcloud.cos.model.ciModel.image.*;
@@ -55,14 +48,11 @@
5548
import com.qcloud.cos.model.ciModel.bucket.MediaBucketResponse;
5649
import com.qcloud.cos.model.ciModel.common.ImageProcessRequest;
5750
import com.qcloud.cos.model.ciModel.job.*;
58-
import com.qcloud.cos.model.ciModel.job.v2.DNADbConfigsRequest;
59-
import com.qcloud.cos.model.ciModel.job.v2.DNADbConfigsResponse;
60-
import com.qcloud.cos.model.ciModel.job.v2.DNADbFilesRequest;
61-
import com.qcloud.cos.model.ciModel.job.v2.DNADbFilesResponse;
62-
import com.qcloud.cos.model.ciModel.job.v2.MediaJobResponseV2;
63-
import com.qcloud.cos.model.ciModel.job.v2.MediaJobsRequestV2;
51+
import com.qcloud.cos.model.ciModel.job.v2.*;
6452
import com.qcloud.cos.model.ciModel.mediaInfo.MediaInfoRequest;
6553
import com.qcloud.cos.model.ciModel.mediaInfo.MediaInfoResponse;
54+
import com.qcloud.cos.model.ciModel.metaInsight.CreateDatasetRequest;
55+
import com.qcloud.cos.model.ciModel.metaInsight.CreateDatasetResponse;
6656
import com.qcloud.cos.model.ciModel.persistence.AIGameRecResponse;
6757
import com.qcloud.cos.model.ciModel.persistence.CIUploadResult;
6858
import com.qcloud.cos.model.ciModel.persistence.AIRecRequest;
@@ -3264,6 +3254,12 @@ SelectObjectContentResult selectObjectContent(SelectObjectContentRequest selectR
32643254
UpdataHLSPlayKeyResponse updataHLSPlayKey(UpdataHLSPlayKeyRequest customRequest);
32653255

32663256
MediaListTemplateResponse describeMediaTemplatesV2(MediaTemplateRequest request);
3257+
3258+
InputStream getPlayList(GetPlayListRequest request);
3259+
3260+
RecognizeLogoResponse recognizeLogo(RecognizeLogoRequest customRequest);
3261+
3262+
CreateDatasetResponse createDataset(CreateDatasetRequest customRequest);
32673263
}
32683264

32693265

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

Lines changed: 73 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,12 @@
9898
import com.qcloud.cos.model.ciModel.image.ImageStyleResponse;
9999
import com.qcloud.cos.model.ciModel.image.OpenImageSearchRequest;
100100
import com.qcloud.cos.model.ciModel.job.*;
101-
import com.qcloud.cos.model.ciModel.job.v2.DNADbConfigsRequest;
102-
import com.qcloud.cos.model.ciModel.job.v2.DNADbConfigsResponse;
103-
import com.qcloud.cos.model.ciModel.job.v2.DNADbFilesRequest;
104-
import com.qcloud.cos.model.ciModel.job.v2.DNADbFilesResponse;
105-
import com.qcloud.cos.model.ciModel.job.v2.MediaJobResponseV2;
106-
import com.qcloud.cos.model.ciModel.job.v2.MediaJobsRequestV2;
101+
import com.qcloud.cos.model.ciModel.job.MediaJobObject;
102+
import com.qcloud.cos.model.ciModel.job.v2.*;
107103
import com.qcloud.cos.model.ciModel.mediaInfo.MediaInfoRequest;
108104
import com.qcloud.cos.model.ciModel.mediaInfo.MediaInfoResponse;
105+
import com.qcloud.cos.model.ciModel.metaInsight.CreateDatasetRequest;
106+
import com.qcloud.cos.model.ciModel.metaInsight.CreateDatasetResponse;
109107
import com.qcloud.cos.model.ciModel.persistence.AIGameRecResponse;
110108
import com.qcloud.cos.model.ciModel.persistence.CIUploadResult;
111109
import com.qcloud.cos.model.ciModel.persistence.AIRecRequest;
@@ -155,7 +153,6 @@
155153

156154
import org.apache.commons.codec.DecoderException;
157155
import org.apache.http.client.methods.HttpRequestBase;
158-
import org.apache.http.client.utils.URIBuilder;
159156
import org.apache.http.entity.ContentType;
160157
import org.slf4j.Logger;
161158
import org.slf4j.LoggerFactory;
@@ -2144,7 +2141,7 @@ public CopyObjectResult copyObject(CopyObjectRequest copyObjectRequest)
21442141
+ " httpRequest: %s, retryIdx:%d, maxErrorRetry:%d", cse.getMessage(), request,
21452142
retryIndex, clientConfig.getMaxErrorRetryForCopyRequest());
21462143
log.debug(errorMsg);
2147-
if (retryIndex < clientConfig.getMaxErrorRetryForCopyRequest() && RetryUtils.ShouldRetryCopyRequest(cse)) {
2144+
if (retryIndex < clientConfig.getMaxErrorRetryForCopyRequest() && RetryUtils.shouldRetryCopyRequest(cse)) {
21482145
retryIndex++;
21492146
continue;
21502147
}
@@ -2261,7 +2258,7 @@ public CopyPartResult copyPart(CopyPartRequest copyPartRequest)
22612258
+ " httpRequest: %s, retryIdx:%d, maxErrorRetry:%d", cse.getMessage(), request,
22622259
retryIndex, clientConfig.getMaxErrorRetryForCopyRequest());
22632260
log.debug(errorMsg);
2264-
if (retryIndex < clientConfig.getMaxErrorRetryForCopyRequest() && RetryUtils.ShouldRetryCopyRequest(cse)) {
2261+
if (retryIndex < clientConfig.getMaxErrorRetryForCopyRequest() && RetryUtils.shouldRetryCopyRequest(cse)) {
22652262
retryIndex++;
22662263
continue;
22672264
}
@@ -4333,46 +4330,32 @@ public String reportBadCase(ReportBadCaseRequest reportBadCaseRequest) {
43334330
return invoke(request, new Unmarshallers.ReportBadCaseUnmarshaller());
43344331
}
43354332

4336-
43374333
private String buildDocPreview(CosHttpRequest<DocHtmlRequest> request) throws URISyntaxException {
4338-
String urlStr = request.getProtocol().toString() + "://" + request.getEndpoint() + request.getResourcePath();
4339-
URIBuilder uriBuilder = new URIBuilder(urlStr);
4340-
COSSigner cosSigner = clientConfig.getCosSigner();
43414334
Date expiredTime = new Date(System.currentTimeMillis() + clientConfig.getSignExpired() * 1000);
4342-
String authoriationStr = cosSigner.buildAuthorizationStr(request.getHttpMethod(), request.getResourcePath(),
4343-
request.getHeaders(), request.getParameters(), fetchCredential(), expiredTime, true);
4335+
HashMap<String, String> params = new HashMap<>();
4336+
params.put("ci-process", "doc-preview");
43444337
DocHtmlRequest originalRequest = request.getOriginalRequest();
4345-
uriBuilder.addParameter("ci-process", "doc-preview");
4346-
uriBuilder.addParameter("dstType", originalRequest.getDstType().toString());
4347-
uriBuilder.addParameter("srcType", originalRequest.getSrcType());
4348-
uriBuilder.addParameter("page", originalRequest.getPage());
4349-
uriBuilder.addParameter("ImageParams", originalRequest.getImageParams());
4350-
uriBuilder.addParameter("sheet", originalRequest.getSheet());
4351-
uriBuilder.addParameter("password", originalRequest.getPassword());
4352-
uriBuilder.addParameter("comment", originalRequest.getComment());
4353-
uriBuilder.addParameter("excelPaperDirection", originalRequest.getExcelPaperDirection());
4354-
uriBuilder.addParameter("excelPaperSize", originalRequest.getExcelPaperSize());
4355-
uriBuilder.addParameter("quality", originalRequest.getQuality());
4356-
uriBuilder.addParameter("scale", originalRequest.getScale());
4357-
uriBuilder.addParameter("imageDpi", originalRequest.getImageDpi());
4358-
return uriBuilder.build().toString() + "&" + authoriationStr;
4359-
}
4360-
4361-
// private void checkAuditingRequest(ImageAuditingRequest request) {
4362-
// rejectNull(request.getDetectType(), "The detectType parameter must be specified setting the object tags");
4363-
// rejectNull(request.getObjectKey(), "The objectKey parameter must be specified setting the object tags");
4364-
// }
4365-
//
4366-
// private void checkWorkflowParameter(MediaWorkflowRequest request) {
4367-
// rejectNull(request.getName(),
4368-
// "The name parameter must be specified setting the object tags");
4369-
// rejectNull(request.getTopology(),
4370-
// "The topology parameter must be specified setting the object tags");
4371-
// rejectEmpty(request.getTopology().getMediaWorkflowNodes(),
4372-
// "The Nodes parameter must be specified setting the object tags");
4373-
// rejectEmpty(request.getTopology().getMediaWorkflowDependency(),
4374-
// "The Dependency parameter must be specified setting the object tags");
4375-
// }
4338+
putIfNotNull(params, "dstType", originalRequest.getDstType().toString());
4339+
putIfNotNull(params, "srcType", originalRequest.getSrcType());
4340+
putIfNotNull(params, "page", originalRequest.getPage());
4341+
putIfNotNull(params, "ImageParams", originalRequest.getImageParams());
4342+
putIfNotNull(params, "sheet", originalRequest.getSheet());
4343+
putIfNotNull(params, "password", originalRequest.getPassword());
4344+
putIfNotNull(params, "comment", originalRequest.getComment());
4345+
putIfNotNull(params, "excelPaperDirection", originalRequest.getExcelPaperDirection());
4346+
putIfNotNull(params, "excelPaperSize", originalRequest.getExcelPaperSize());
4347+
putIfNotNull(params, "quality", originalRequest.getQuality());
4348+
putIfNotNull(params, "scale", originalRequest.getScale());
4349+
putIfNotNull(params, "imageDpi", originalRequest.getImageDpi());
4350+
URL url = generatePresignedUrl(request.getBucketName(), request.getResourcePath(), expiredTime, HttpMethodName.GET, new HashMap<String, String>(), params, false, false);
4351+
return url.toString();
4352+
}
4353+
4354+
private void putIfNotNull(HashMap<String, String> map, String key, String value) {
4355+
if (value != null) {
4356+
map.put(key, value);
4357+
}
4358+
}
43764359

43774360
private void checkCIRequestCommon(CIServiceRequest request) {
43784361
rejectNull(request,
@@ -4381,16 +4364,6 @@ private void checkCIRequestCommon(CIServiceRequest request) {
43814364
"The bucketName parameter must be specified setting the object tags");
43824365
}
43834366

4384-
// private void checkRequestOutput(MediaOutputObject output) {
4385-
// rejectNull(output.getBucket(),
4386-
// "The output.bucket parameter must be specified setting the object tags");
4387-
// rejectNull(output.getRegion(),
4388-
// "The output.region parameter must be specified setting the object tags");
4389-
// rejectNull(output.getObject(),
4390-
// "The output.object parameter must be specified setting the object tags");
4391-
// }
4392-
4393-
43944367
private void checkMediaListJobResponse(MediaListJobResponse response) {
43954368
List<MediaJobObject> jobsDetailList = response.getJobsDetailList();
43964369
if (jobsDetailList.size() == 1) {
@@ -5133,6 +5106,50 @@ public MediaListTemplateResponse describeMediaTemplatesV2(MediaTemplateRequest r
51335106
return this.invoke(httpRequest, new Unmarshallers.CICommonUnmarshaller<MediaListTemplateResponse>(MediaListTemplateResponse.class));
51345107
}
51355108

5109+
@Override
5110+
public InputStream getPlayList(GetPlayListRequest getPlayListRequest) {
5111+
CosHttpRequest<GetPlayListRequest> request = createRequest(getPlayListRequest.getBucketName(), "/getplaylist", getPlayListRequest, HttpMethodName.GET);
5112+
addParameterIfNotNull(request, "object", getPlayListRequest.getObject());
5113+
addParameterIfNotNull(request, "expires", getPlayListRequest.getExpires());
5114+
5115+
return invoke(request, new CIGetSnapshotResponseHandler());
5116+
}
51365117

5118+
@Override
5119+
public RecognizeLogoResponse recognizeLogo(RecognizeLogoRequest customRequest) {
5120+
5121+
CosHttpRequest<RecognizeLogoRequest> request = createRequest(customRequest.getBucketName(), "/", customRequest , HttpMethodName.GET);
5122+
addParameterIfNotNull(request, "ci-process", customRequest.getCiProcess());
5123+
addParameterIfNotNull(request, "detect-url", customRequest.getDetectUrl());
5124+
5125+
return invoke(request, new Unmarshallers.CICommonUnmarshaller<RecognizeLogoResponse>(RecognizeLogoResponse.class));
5126+
}
5127+
5128+
@Override
5129+
public CreateDatasetResponse createDataset(CreateDatasetRequest customRequest) {
5130+
return null;
5131+
}
5132+
5133+
5134+
public String generateCosDomainPrivateM3U8Url(PrivateM3U8Request privateM3U8Request) {
5135+
CosHttpRequest<PrivateM3U8Request> request = createRequest(privateM3U8Request.getBucketName(), privateM3U8Request.getObject(), privateM3U8Request, HttpMethodName.GET);
5136+
request.addParameter("ci-process","pm3u8");
5137+
addParameterIfNotNull(request,"expires",privateM3U8Request.getExpires());
5138+
addParameterIfNotNull(request,"tokenType",privateM3U8Request.getTokenType());
5139+
addParameterIfNotNull(request,"token",privateM3U8Request.getToken());
5140+
return buildPrivateM3U8Url(request);
5141+
}
5142+
5143+
private String buildPrivateM3U8Url(CosHttpRequest<PrivateM3U8Request> request) {
5144+
Date expiredTime = new Date(System.currentTimeMillis() + clientConfig.getSignExpired() * 1000);
5145+
HashMap<String, String> params = new HashMap<>();
5146+
params.put("ci-process", "pm3u8");
5147+
PrivateM3U8Request originalRequest = request.getOriginalRequest();
5148+
putIfNotNull(params, "expires", originalRequest.getExpires());
5149+
putIfNotNull(params, "tokenType", originalRequest.getTokenType());
5150+
putIfNotNull(params, "token", originalRequest.getToken());
5151+
URL url = generatePresignedUrl(request.getBucketName(), request.getResourcePath(), expiredTime, HttpMethodName.GET, new HashMap<String, String>(), params, false, false);
5152+
return url.toString();
5153+
}
51375154
}
51385155

src/main/java/com/qcloud/cos/auth/COSSigner.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,7 @@ public String buildAuthorizationStr(HttpMethodName methodName, String resouce_pa
101101
COSCredentials cred,
102102
Date expiredTime) {
103103
Date startTime = new Date();
104-
return buildAuthorizationStr(methodName, resouce_path, new HashMap<>(), new HashMap<>(),
105-
cred, startTime, expiredTime, true);
104+
return buildAuthorizationStr(methodName, resouce_path, new HashMap<>(), new HashMap<>(), cred, startTime, expiredTime, true);
106105
}
107106

108107
public String buildAuthorizationStr(HttpMethodName methodName, String resouce_path,

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@
22

33
import com.qcloud.cos.COSClient;
44
import com.qcloud.cos.model.ciModel.image.AIImageColoringRequest;
5-
import com.qcloud.cos.utils.IOUtils;
65

7-
import java.io.File;
8-
import java.io.FileOutputStream;
9-
import java.io.FileWriter;
106
import java.io.IOException;
117
import java.io.InputStream;
128
import java.io.OutputStream;
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.qcloud.cos.demo.ci;
2+
3+
import com.qcloud.cos.COSClient;
4+
import com.qcloud.cos.model.ciModel.metaInsight.CreateDatasetRequest;
5+
import com.qcloud.cos.model.ciModel.metaInsight.CreateDatasetResponse;
6+
import com.qcloud.cos.utils.CIJackson;
7+
8+
/**
9+
* 创建数据集 详情见https://cloud.tencent.com/document/product/460/106020
10+
*/
11+
public class CreateDatasetDemo {
12+
13+
public static void main(String[] args) {
14+
// 1 初始化用户身份信息(secretId, secretKey)。
15+
COSClient client = ClientUtils.getTestClient();
16+
// 2 调用要使用的方法。
17+
createDataset(client);
18+
}
19+
20+
/**
21+
* createDataset 本接口用于创建一个数据集(Dataset),数据集是由文件元数据构成的集合,用于存储和管理元数据。
22+
* 该接口属于 POST 请求。
23+
*/
24+
public static void createDataset(COSClient client) {
25+
CreateDatasetRequest request = new CreateDatasetRequest();
26+
request.setAppId("1251704708");
27+
// 设置数据集名称,同一个账户下唯一。命名规则如下: 长度为1~32字符。 只能包含小写英文字母,数字,短划线(-)。 必须以英文字母和数字开头。;是否必传:是
28+
request.setDatasetName("mark");
29+
// 设置数据集描述信息。长度为1~256个英文或中文字符,默认值为空。;是否必传:否
30+
request.setDescription("test");
31+
// 设置指模板,在建立元数据索引时,后端将根据模板来决定收集哪些元数据。
32+
// 每个模板都包含一个或多个算子,不同的算子表示不同的元数据。
33+
// 目前支持的模板: Official:DefaultEmptyId:默认为空的模板,表示不进行元数据的采集。
34+
// Official:COSBasicMeta:基础信息模板,包含 COS 文件基础元信息算子,表示采集 COS 文件的名称、类型、ACL等基础元信息数据。
35+
// Official:FaceSearch:人脸检索模板,包含人脸检索、COS 文件基础元信息算子。
36+
// Official:ImageSearch:图像检索模板,包含图像检索、COS 文件基础元信息算子。
37+
request.setTemplateId("Official:COSBasicMeta");
38+
System.out.println(CIJackson.toJsonString(request));
39+
CreateDatasetResponse response = client.createDataset(request);
40+
}
41+
}

0 commit comments

Comments
 (0)