Skip to content

Commit b08c048

Browse files
author
markjrzhang
committed
update DatasetBinding API
1 parent 27a4be7 commit b08c048

File tree

13 files changed

+87
-74
lines changed

13 files changed

+87
-74
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3106,7 +3106,7 @@ SelectObjectContentResult selectObjectContent(SelectObjectContentRequest selectR
31063106
/**
31073107
* GenerateDocPreviewHtmlUrl 查询账号下已开通文档预览功能的bucket
31083108
*/
3109-
String GenerateDocPreviewUrl(DocHtmlRequest docJobRequest) throws URISyntaxException;
3109+
String generateDocPreviewUrl(DocHtmlRequest docJobRequest) throws URISyntaxException;
31103110

31113111
/**
31123112
* createWebpageAuditingJob 提交网页审核任务 https://cloud.tencent.com/document/product/460/63968

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4299,8 +4299,12 @@ public Boolean createMediaProcessBucket(MediaBucketRequest mediaBucketRequest) {
42994299
return true;
43004300
}
43014301

4302-
@Override
43034302
public String GenerateDocPreviewUrl(DocHtmlRequest docJobRequest) throws URISyntaxException {
4303+
return generateDocPreviewUrl(docJobRequest);
4304+
}
4305+
4306+
@Override
4307+
public String generateDocPreviewUrl(DocHtmlRequest docJobRequest) throws URISyntaxException {
43044308
rejectNull(docJobRequest,
43054309
"The request parameter must be specified setting the object tags");
43064310
rejectNull(docJobRequest.getBucketName(),
@@ -5212,7 +5216,7 @@ public DeleteFileMetaIndexResponse deleteFileMetaIndex(DeleteFileMetaIndexReques
52125216
rejectNull(customRequest, "The request parameter must be specified setting the object tags");
52135217

52145218
CosHttpRequest<DeleteFileMetaIndexRequest> request = createRequest(customRequest.getAppId(), "/filemeta", customRequest , HttpMethodName.DELETE);
5215-
5219+
request.addHeader("Accept", "application/json");
52165220
this.setContent(request, CIJackson.toJsonBytes(customRequest), "application/json", false);
52175221
return invoke(request, new Unmarshallers.CICommonJsonUnmarshaller<DeleteFileMetaIndexResponse>(DeleteFileMetaIndexResponse.class));
52185222
}

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@ public static void deleteDatasetBinding(COSClient client) {
2727
// 设置数据集名称,同一个账户下唯一。;是否必传:是
2828
request.setDatasetName("test");
2929
// 设置资源标识字段,表示需要与数据集绑定的资源,当前仅支持COS存储桶,字段规则:cos://<BucketName>,其中BucketName表示COS存储桶名称,例如:cos://examplebucket-1250000000;是否必传:是
30-
request.setURI("cos://examplebucket-1250000000");
31-
30+
request.setURI("cos://examplebucket-1250000000/object");
3231
DeleteDatasetBindingResponse response = client.deleteDatasetBinding(request);
3332
System.out.println(Jackson.toJsonString(response));
3433
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public static void generateDocPreviewUrl(COSClient client) throws URISyntaxExcep
102102
request.setDstType(DocHtmlRequest.DocType.html);
103103
request.setObjectKey("1.pptx");
104104
//3.调用接口,获取任务响应对象
105-
String previewUrl = client.GenerateDocPreviewUrl(request);
105+
String previewUrl = client.generateDocPreviewUrl(request);
106106
System.out.println(previewUrl);
107107
}
108108

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

Lines changed: 52 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -26,24 +26,29 @@
2626
* 媒体处理 边转边播接口相关demo
2727
*/
2828
public class GeneratePlayListDemo {
29+
private static String appId = "123456789";
30+
private static String bucket = "demo-123456789";
31+
private static String objectKey = "test.m3u8";
32+
private static String expires = "3600";
33+
private static byte[] secret = "YourSecret".getBytes();
2934

3035
public static void main(String[] args) throws Exception {
3136
// 1 初始化用户身份信息(secretId, secretKey)。
3237
COSClient client = ClientUtils.getTestClient();
3338
// 2 调用要使用的方法。
34-
getPlayList(client);
39+
getPlayListSimple(client);
3540
}
3641

3742
/**
3843
* generatePlayList 提交生成播放列表任务
3944
*/
40-
public static void generatePlayList(COSClient client) {
45+
public static void generatePlayList(COSClient client) {
4146
//1.创建任务请求对象
4247
MediaJobsRequestV2 request = new MediaJobsRequestV2();
43-
request.setBucketName("demo-1234567890");
48+
request.setBucketName(bucket);
4449
//2.添加请求参数 参数详情请见api接口文档
4550
request.setTag("GeneratePlayList");
46-
request.getInput().setObject("1.mp4");
51+
request.getInput().setObject(objectKey);
4752
MediaContainerObject container = request.getOperation().getTranscode().getContainer();
4853
container.setFormat("hls");
4954
container.getClipConfig().setDuration("5");
@@ -66,22 +71,18 @@ public static void generatePlayList(COSClient client) {
6671
/**
6772
* describeMediaJob 根据jobId查询任务信息
6873
*/
69-
public static void describeMediaJob(COSClient client) {
74+
public static void describeMediaJob(COSClient client) {
7075
//1.创建任务请求对象
7176
MediaJobsRequestV2 request = new MediaJobsRequestV2();
7277
//2.添加请求参数 参数详情请见api接口文档
73-
request.setBucketName("demo-1234567890");
78+
request.setBucketName(bucket);
7479
request.setJobId("j8b360cd0142511efac6425779c0*****");
7580
//3.调用接口,获取任务响应对象
7681
MediaJobResponseV2 response = client.describeMediaJobV2(request);
7782
System.out.println(Jackson.toJsonString(response));
7883
}
7984

80-
private static String appId = "123456789";
81-
private static String bucket = "demo-123456789";
82-
private static String objectKey = "test.m3u8";
83-
private static String expires = "3600";
84-
private static byte[] secret = "YourSecret".getBytes();
85+
8586

8687
public static void getPlayList(COSClient client) {
8788
String bucketName = bucket;
@@ -100,47 +101,47 @@ public static void getPlayList(COSClient client) {
100101
System.out.println(url.toString());
101102
}
102103

103-
public static void getPlayListSimple(COSClient client) throws UnsupportedEncodingException {
104-
String bucketName = bucket;
105-
String key = objectKey;
106-
// 设置签名过期时间(可选), 若未进行设置则默认使用 ClientConfig 中的签名过期时间(1小时)
107-
Instant now = Instant.now();
108-
Instant expire = now.plus(Long.parseLong(expires), ChronoUnit.SECONDS);
109-
Date expirationDate = Date.from(expire);
110-
String token = generateToken(appId, bucket, objectKey, secret, expirationDate);
111-
Map<String, String> params = new HashMap<String, String>();
112-
params.put("ci-process", "getplaylist");
113-
params.put("expires", "43200");
114-
params.put("token-type", "JwtToken");
115-
params.put("token",token);
116-
Map<String, String> headers = new HashMap<String, String>();
117-
118-
HttpMethodName method = HttpMethodName.GET;
119-
URL url = client.generatePresignedUrl(bucketName, key, expirationDate, method, headers, params);
120-
System.out.println(url.toString());
121-
}
104+
public static void getPlayListSimple(COSClient client) throws UnsupportedEncodingException {
105+
String bucketName = bucket;
106+
String key = objectKey;
107+
// 设置签名过期时间(可选), 若未进行设置则默认使用 ClientConfig 中的签名过期时间(1小时)
108+
Instant now = Instant.now();
109+
Instant expire = now.plus(Long.parseLong(expires), ChronoUnit.SECONDS);
110+
Date expirationDate = Date.from(expire);
111+
String token = generateToken(appId, bucket, objectKey, secret, expirationDate);
112+
Map<String, String> params = new HashMap<String, String>();
113+
params.put("ci-process", "getplaylist");
114+
params.put("expires", "43200");
115+
params.put("token-type", "JwtToken");
116+
params.put("token", token);
117+
Map<String, String> headers = new HashMap<String, String>();
122118

123-
public static String generateToken(String appId, String bucketId, String objectKey, byte[] secret, Date expires) throws UnsupportedEncodingException {
124-
Instant now = Instant.now();
125-
String encodedObjectKey;
126-
encodedObjectKey = URLEncoder.encode(objectKey, "UTF-8");
127-
128-
Algorithm algorithm = Algorithm.HMAC256(secret);
129-
JWTCreator.Builder builder = JWT.create().withIssuer("client")
130-
.withIssuedAt(Date.from(now))
131-
.withExpiresAt(expires)
132-
.withClaim("Type", "CosCiToken")
133-
.withClaim("AppId", appId)
134-
.withClaim("BucketId", bucketId)
135-
.withClaim("Object", encodedObjectKey)
136-
.withClaim("Issuer", "client")
137-
.withClaim("IssuedTimeStamp", now.getEpochSecond())
138-
.withClaim("ExpireTimeStamp", expires.getTime()/1000)
139-
.withClaim("UsageLimit", 20)
140-
.withClaim("ProtectSchema", "rsa1024")
119+
HttpMethodName method = HttpMethodName.GET;
120+
URL url = client.generatePresignedUrl(bucketName, key, expirationDate, method, headers, params);
121+
System.out.println(url.toString());
122+
}
123+
124+
public static String generateToken(String appId, String bucketId, String objectKey, byte[] secret, Date expires) throws UnsupportedEncodingException {
125+
Instant now = Instant.now();
126+
String encodedObjectKey;
127+
encodedObjectKey = URLEncoder.encode(objectKey, "UTF-8");
128+
129+
Algorithm algorithm = Algorithm.HMAC256(secret);
130+
JWTCreator.Builder builder = JWT.create().withIssuer("client")
131+
.withIssuedAt(Date.from(now))
132+
.withExpiresAt(expires)
133+
.withClaim("Type", "CosCiToken")
134+
.withClaim("AppId", appId)
135+
.withClaim("BucketId", bucketId)
136+
.withClaim("Object", encodedObjectKey)
137+
.withClaim("Issuer", "client")
138+
.withClaim("IssuedTimeStamp", now.getEpochSecond())
139+
.withClaim("ExpireTimeStamp", expires.getTime() / 1000)
140+
.withClaim("UsageLimit", 20)
141+
.withClaim("ProtectSchema", "rsa1024")
141142
// .withClaim("PublicKey", "xxx")
142-
.withClaim("ProtectContentKey", 0);
143-
return builder.sign(algorithm);
144-
}
143+
.withClaim("ProtectContentKey", 0);
144+
return builder.sign(algorithm);
145+
}
145146

146147
}

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import com.qcloud.cos.model.ciModel.metaInsight.SearchImageResponse;
66
import com.qcloud.cos.utils.Jackson;
77

8-
import java.util.List;
98

109
/**
1110
* 图像检索 详情见https://cloud.tencent.com/document/product/460/106376

src/main/java/com/qcloud/cos/http/DefaultCosHttpClient.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
import com.qcloud.cos.internal.ResettableInputStream;
5858
import com.qcloud.cos.internal.SdkBufferedInputStream;
5959
import com.qcloud.cos.internal.CIWorkflowServiceRequest;
60+
import com.qcloud.cos.internal.CIServiceRequest;
6061
import com.qcloud.cos.retry.BackoffStrategy;
6162
import com.qcloud.cos.retry.RetryPolicy;
6263
import com.qcloud.cos.utils.CodecUtils;
@@ -233,7 +234,11 @@ private <X extends CosServiceRequest> HttpRequestBase buildHttpRequest(
233234
} else if (httpMethodName.equals(HttpMethodName.GET)) {
234235
httpRequestBase = new HttpGet();
235236
} else if (httpMethodName.equals(HttpMethodName.DELETE)) {
236-
httpRequestBase = new HttpEntityEnclosingDelete();
237+
if (request.getOriginalRequest() instanceof CIServiceRequest) {
238+
httpRequestBase = new HttpEntityEnclosingDelete();
239+
} else {
240+
httpRequestBase = new HttpDelete();
241+
}
237242
} else if (httpMethodName.equals(HttpMethodName.POST)) {
238243
httpRequestBase = new HttpPost();
239244
} else if (httpMethodName.equals(HttpMethodName.HEAD)) {
@@ -293,7 +298,8 @@ private <X extends CosServiceRequest> HttpRequestBase buildHttpRequest(
293298
entityRequestBase.setEntity(reqEntity);
294299
}
295300

296-
if ( httpMethodName.equals(HttpMethodName.DELETE)){
301+
if (httpMethodName.equals(HttpMethodName.DELETE) &&
302+
request.getOriginalRequest() instanceof CIServiceRequest) {
297303
HttpEntityEnclosingRequestBase entityRequestBase =
298304
(HttpEntityEnclosingDelete) httpRequestBase;
299305
entityRequestBase.setEntity(reqEntity);

src/main/java/com/qcloud/cos/internal/XmlResponsesSaxParser.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6774,14 +6774,20 @@ protected void doEndElement(String uri, String name, String qName) {
67746774
case "Score":
67756775
response.setScore(getText());
67766776
break;
6777+
case "CompressionResult":
6778+
response.setCompressionResult(getText());
6779+
break;
6780+
case "SubLabel":
6781+
response.setSubLabel(getText());
6782+
break;
67776783
default:
67786784
break;
67796785
}
67806786
} else if (in("Response", "JobsDetail", "PornInfo")) {
67816787
ParserMediaInfoUtils.ParsingAuditingCommonInfo(response.getPornInfo(), name, getText());
67826788
} else if (in("Response", "JobsDetail", "PoliticsInfo")) {
67836789
ParserMediaInfoUtils.ParsingAuditingCommonInfo(response.getPoliticsInfo(), name, getText());
6784-
} else if (in("Response", "JobsDetail", "TerroristInfo")) {
6790+
} else if (in("Response", "JobsDetail", "TerroristInfo") || in("Response", "JobsDetail", "TerrorismInfo")) {
67856791
ParserMediaInfoUtils.ParsingAuditingCommonInfo(response.getTerroristInfo(), name, getText());
67866792
} else if (in("Response", "JobsDetail", "AdsInfo")) {
67876793
ParserMediaInfoUtils.ParsingAuditingCommonInfo(response.getAdsInfo(), name, getText());

src/main/java/com/qcloud/cos/model/ciModel/metaInsight/DeleteDatasetBindingRequest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.qcloud.cos.model.ciModel.metaInsight;
22

3+
import com.fasterxml.jackson.annotation.JsonProperty;
34
import com.qcloud.cos.internal.CIServiceRequest;
45
import com.thoughtworks.xstream.annotations.XStreamAlias;
56
import com.thoughtworks.xstream.annotations.XStreamImplicit;
@@ -19,6 +20,7 @@ public class DeleteDatasetBindingRequest extends CIServiceRequest {
1920
/**
2021
*资源标识字段,表示需要与数据集绑定的资源,当前仅支持COS存储桶,字段规则:cos://<BucketName>,其中BucketName表示COS存储桶名称,例如:cos://examplebucket-1250000000;是否必传:是
2122
*/
23+
@JsonProperty("URI")
2224
private String uRI;
2325

2426
public String getDatasetName() { return datasetName; }

src/main/java/com/qcloud/cos/model/ciModel/metaInsight/DeleteFileMetaIndexRequest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.qcloud.cos.model.ciModel.metaInsight;
22

3+
import com.fasterxml.jackson.annotation.JsonProperty;
34
import com.qcloud.cos.internal.CIServiceRequest;
45
import com.thoughtworks.xstream.annotations.XStreamAlias;
56
import com.thoughtworks.xstream.annotations.XStreamImplicit;
@@ -19,6 +20,7 @@ public class DeleteFileMetaIndexRequest extends CIServiceRequest {
1920
/**
2021
*资源标识字段,表示需要建立索引的文件地址。;是否必传:是
2122
*/
23+
@JsonProperty("URI")
2224
private String uRI;
2325

2426
public String getDatasetName() { return datasetName; }

0 commit comments

Comments
 (0)