Skip to content

Commit 1bc021f

Browse files
author
markjrzhang
committed
update CreateDataset
1 parent e7a5028 commit 1bc021f

File tree

4 files changed

+38
-23
lines changed

4 files changed

+38
-23
lines changed

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5127,7 +5127,11 @@ public RecognizeLogoResponse recognizeLogo(RecognizeLogoRequest customRequest) {
51275127

51285128
@Override
51295129
public CreateDatasetResponse createDataset(CreateDatasetRequest customRequest) {
5130-
return null;
5130+
rejectNull(customRequest, "The request parameter must be specified setting the object tags");
5131+
CosHttpRequest<CreateDatasetRequest> request = createRequest(customRequest.getAppId(), "/dataset", customRequest , HttpMethodName.POST);
5132+
request.addHeader("Accept", "application/json");
5133+
this.setContent(request, CIJackson.toJsonBytes(customRequest), "application/json", false);
5134+
return invoke(request, new Unmarshallers.CICommonUnmarshaller<CreateDatasetResponse>(CreateDatasetResponse.class));
51315135
}
51325136

51335137

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44
import com.qcloud.cos.model.ciModel.metaInsight.CreateDatasetRequest;
55
import com.qcloud.cos.model.ciModel.metaInsight.CreateDatasetResponse;
66
import com.qcloud.cos.utils.CIJackson;
7+
import com.qcloud.cos.utils.Jackson;
8+
9+
import java.util.Arrays;
710

811
/**
912
* 创建数据集 详情见https://cloud.tencent.com/document/product/460/106020
@@ -37,5 +40,6 @@ public static void createDataset(COSClient client) {
3740
request.setTemplateId("Official:COSBasicMeta");
3841
System.out.println(CIJackson.toJsonString(request));
3942
CreateDatasetResponse response = client.createDataset(request);
43+
System.out.println(Jackson.toJsonString(response));
4044
}
4145
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@
2424
import java.util.List;
2525
import java.util.Map;
2626

27+
import com.fasterxml.jackson.annotation.JsonFilter;
2728
import com.qcloud.cos.auth.COSCredentials;
2829
import com.qcloud.cos.event.ProgressListener;
2930

31+
@JsonFilter("CosServiceFilter")
3032
public class CosServiceRequest implements Cloneable, ReadLimitInfo {
3133
/**
3234
* Request related key information

src/main/java/com/qcloud/cos/utils/CIJackson.java

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,14 @@
2626
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
2727
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
2828
import com.qcloud.cos.exception.CosClientException;
29+
import com.qcloud.cos.internal.CosServiceRequest;
2930
import org.slf4j.Logger;
3031
import org.slf4j.LoggerFactory;
3132

32-
import java.io.IOException;
33-
import java.io.Writer;
33+
import java.lang.reflect.Field;
34+
import java.nio.charset.StandardCharsets;
35+
import java.util.HashSet;
36+
import java.util.Set;
3437

3538
public enum CIJackson {
3639
;
@@ -43,20 +46,26 @@ public enum CIJackson {
4346
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
4447
objectMapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
4548
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.PASCAL_CASE_TO_CAMEL_CASE);
46-
SimpleBeanPropertyFilter filter = SimpleBeanPropertyFilter.serializeAllExcept();
49+
SimpleBeanPropertyFilter filter = SimpleBeanPropertyFilter.serializeAllExcept(getFieldsToFilter(CosServiceRequest.class));
4750
FilterProvider filters = new SimpleFilterProvider().addFilter("CosServiceFilter", filter);
4851
objectMapper.setFilterProvider(filters);
4952
}
50-
5153
private static final ObjectWriter writer = objectMapper.writer();
52-
private static final ObjectWriter prettyWriter = objectMapper.writerWithDefaultPrettyPrinter();
5354

54-
public static String toJsonPrettyString(Object value) {
55-
try {
56-
return prettyWriter.writeValueAsString(value);
57-
} catch (Exception e) {
58-
throw new IllegalStateException(e);
55+
private static Set<String> getFieldsToFilter(Class cosServiceRequestClass) {
56+
Set<String> fieldNames = new HashSet<>();
57+
Field[] declaredFields = cosServiceRequestClass.getDeclaredFields();
58+
for (Field declaredField : declaredFields) {
59+
String name = declaredField.getName();
60+
String fieldNameCapitalized = capitalizeFirstLetter(name);
61+
fieldNames.add(fieldNameCapitalized);
5962
}
63+
fieldNames.add("ReadLimit");
64+
fieldNames.add("CloneRoot");
65+
fieldNames.add("GeneralProgressListener");
66+
fieldNames.add("RequestId");
67+
fieldNames.add("BucketName");
68+
return fieldNames;
6069
}
6170

6271
public static String toJsonString(Object value) {
@@ -67,23 +76,19 @@ public static String toJsonString(Object value) {
6776
}
6877
}
6978

70-
public static <T> T fromJsonString(String json, Class<T> clazz) {
71-
if (json == null)
72-
return null;
79+
public static byte[] toJsonBytes(Object value) {
7380
try {
74-
return objectMapper.readValue(json, clazz);
81+
return writer.writeValueAsString(value).getBytes(StandardCharsets.UTF_8);
7582
} catch (Exception e) {
76-
throw new CosClientException("Unable to parse Json String.", e);
83+
throw new IllegalStateException(e);
7784
}
7885
}
7986

80-
public static JsonNode jsonNodeOf(String json) {
81-
return fromJsonString(json, JsonNode.class);
82-
}
83-
84-
public static JsonGenerator jsonGeneratorOf(Writer writer) throws IOException {
85-
return new JsonFactory().createGenerator(writer);
87+
private static String capitalizeFirstLetter(String str) {
88+
if (str == null || str.isEmpty()) {
89+
return str;
90+
}
91+
return Character.toUpperCase(str.charAt(0)) + str.substring(1);
8692
}
87-
8893
}
8994

0 commit comments

Comments
 (0)