简介
本文档提供关于数据万象图片 AIGC 元数据标识的相关 API 概览以及 SDK 示例代码。
注意:
API | 操作描述 |
AIGC 图片元数据中包含了内容生产平台标识、内容传播平台标识等信息,可以通过此方式添加图片中的 AIGC 元数据标识信息 | |
AIGC 图片元数据中包含了内容生产平台标识、内容传播平台标识等信息,可以通过此方式获取图片中的 AIGC 元数据标识信息 |
添加 AIGC 图片元数据标识
请求示例
上传时处理
public static void persistenceImage(COSClient cosClient) {// bucket 名需包含 appid// api 请参考 https://cloud.tencent.com/document/product/436/54050String bucketName = "examplebucket-1250000000";String key = "test.jpg";File localFile = new File("E://test.jpg");PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);PicOperations picOperations = new PicOperations();picOperations.setIsPicInfo(1);List<PicOperations.Rule> ruleList = new LinkedList<>();PicOperations.Rule rule1 = new PicOperations.Rule();rule1.setBucket(bucketName);rule1.setFileId("test-1.jpg");// 构建 AIGC 元数据规则// 注意:所有参数值需要进行 Base64编码,Label 参数是必填的,其他参数为可选String label = Base64.getUrlEncoder().withoutPadding().encodeToString("label".getBytes(StandardCharsets.UTF_8));String contentProducer = Base64.getUrlEncoder().withoutPadding().encodeToString("content_producer".getBytes(StandardCharsets.UTF_8));String produceId = Base64.getUrlEncoder().withoutPadding().encodeToString("produce_id".getBytes(StandardCharsets.UTF_8));String reservedCode1 = Base64.getUrlEncoder().withoutPadding().encodeToString("reserved_code1".getBytes(StandardCharsets.UTF_8));String reservedCode2 = Base64.getUrlEncoder().withoutPadding().encodeToString("reserved_code2".getBytes(StandardCharsets.UTF_8));String propagateId = Base64.getUrlEncoder().withoutPadding().encodeToString("propagate_id".getBytes(StandardCharsets.UTF_8));String contentPropagator = Base64.getUrlEncoder().withoutPadding().encodeToString("content_propagator".getBytes(StandardCharsets.UTF_8));String rule = "imageMogr2/AIGCMetadata/Label/" + label+ "/ContentProducer/" + contentProducer+ "/ProduceID/" + produceId+ "/ReservedCode1/" + reservedCode1+ "/ReservedCode2/" + reservedCode2+ "/PropagateID/" + propagateId+ "/ContentPropagator/" + contentPropagator;rule1.setRule(rule);ruleList.add(rule1);picOperations.setRules(ruleList);putObjectRequest.setPicOperations(picOperations);try {PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);CIUploadResult ciUploadResult = putObjectResult.getCiUploadResult();System.out.println(putObjectResult.getRequestId());for(CIObject ciObject:ciUploadResult.getProcessResults().getObjectList()) {System.out.println(ciObject.getLocation());System.out.println(ciObject.getEtag());System.out.println(ciObject.getAigcMetadata());}} catch (CosServiceException e) {e.printStackTrace();} catch (CosClientException e) {e.printStackTrace();}}
云上图片处理
public static void persistenceImagePostWithAigcMetadata(COSClient cosClient) {String bucketName = "examplebucket-1250000000";String key = "test.jpg";ImageProcessRequest imageReq = new ImageProcessRequest(bucketName, key);PicOperations picOperations = new PicOperations();picOperations.setIsPicInfo(1);List<PicOperations.Rule> ruleList = new LinkedList<>();PicOperations.Rule rule1 = new PicOperations.Rule();rule1.setBucket(bucketName);rule1.setFileId("test-1.jpg");// 手动构建 AIGC 元数据规则// 注意:所有参数值需要进行 Base64编码,Label 参数是必填的,其他参数为可选String label = Base64.getUrlEncoder().withoutPadding().encodeToString("label".getBytes(StandardCharsets.UTF_8));String contentProducer = Base64.getUrlEncoder().withoutPadding().encodeToString("content_producer".getBytes(StandardCharsets.UTF_8));String produceId = Base64.getUrlEncoder().withoutPadding().encodeToString("produce_id".getBytes(StandardCharsets.UTF_8));String reservedCode1 = Base64.getUrlEncoder().withoutPadding().encodeToString("reserved_code1".getBytes(StandardCharsets.UTF_8));String reservedCode2 = Base64.getUrlEncoder().withoutPadding().encodeToString("reserved_code2".getBytes(StandardCharsets.UTF_8));String propagateId = Base64.getUrlEncoder().withoutPadding().encodeToString("propagate_id".getBytes(StandardCharsets.UTF_8));String contentPropagator = Base64.getUrlEncoder().withoutPadding().encodeToString("content_propagator".getBytes(StandardCharsets.UTF_8));String rule = "imageMogr2/AIGCMetadata/Label/" + label+ "/ContentProducer/" + contentProducer+ "/ProduceID/" + produceId+ "/ReservedCode1/" + reservedCode1+ "/ReservedCode2/" + reservedCode2+ "/PropagateID/" + propagateId+ "/ContentPropagator/" + contentPropagator;rule1.setRule(rule);ruleList.add(rule1);picOperations.setRules(ruleList);imageReq.setPicOperations(picOperations);try {CIUploadResult ciUploadResult = cosClient.processImage(imageReq);System.out.println(ciUploadResult.getOriginalInfo().getEtag());for(CIObject ciObject:ciUploadResult.getProcessResults().getObjectList()) {System.out.println(ciObject.getAigcMetadata());}} catch (CosServiceException e) {e.printStackTrace();} catch (CosClientException e) {e.printStackTrace();}}
参数说明
返回结果说明
成功:返回 UploadResult 对象响应信息。
失败:发生错误(如 Bucket 不存在),抛出异常 CosClientException 或者 CosServiceException。详情请参见 异常处理。
查询 AIGC 图片元数据标识
方法原型
public AIGCMetadataResponse getImageAIGCMetadata(String bucketName, String key)
请求示例
public static void getImageAIGCMetadata(COSClient client) {String bucketName = "demoBuck-1251704708";String key = "test.jpg";AIGCMetadataResponse response = client.getImageAIGCMetadata(bucketName, key);System.out.println(response);}
参数说明
参数 | 含义 | 类型 | 是否必选 |
bucketName | String | 是 | |
key | 对象文件名,例如 folder/sample.jpg | String | 是 |
返回结果说明
成功:返回 AIGCMetadataResponse 对象响应信息。
失败:发生错误(如 Bucket 不存在),抛出异常 CosClientException 或者 CosServiceException。详情请参见 异常处理。