本文介绍了内容检测API Java SDK提供的自定义图库管理接口。您可以通过这些接口自定义智能鉴黄、暴恐涉政识别、图片或视频广告的图片样本,满足个性化内容管控需求。
准备工作
在进行具体的服务调用之前,请参见以下步骤,完成准备工作:
- 创建阿里云AccessKeyId和AccessKeySecret。具体请参见创建AccessKey。
- 安装Java依赖。具体请参见安装Java依赖。
- 下载并在项目工程中引入Extension.Uploader工具类。
获取自定义图库列表
您可以使用以下代码获取用户图库列表(包括用户自定义的图库列表和系统回流图库):
DescribeImageLibRequest describeImageLibRequest = new DescribeImageLibRequest();
describeImageLibRequest.setServiceModule("open_api");
try {
//获取所有的图库,包括自定义的图库以及回流图库
DescribeImageLibResponse describeImageLibResponse = client.getAcsResponse(describeImageLibRequest);
System.out.println(JSON.toJSONString(describeImageLibResponse));
List<DescribeImageLibResponse.ImageLib> allLibs = describeImageLibResponse.getImageLibList();
List<DescribeImageLibResponse.ImageLib> customImageLibs = new ArrayList<DescribeImageLibResponse.ImageLib>();
for (DescribeImageLibResponse.ImageLib imageLib : allLibs) {
String source = imageLib.getSource();
//过滤出用户自定义的图库
if("MANUAL".equals(source)) {
customImageLibs.add(imageLib);
}
//过滤出系统回流(反馈)的图库
if("FEEDBACK".equals(source)) {
customImageLibs.add(imageLib);
}
}
System.out.println(JSON.toJSONString(customImageLibs));
} catch (ClientException e) {
e.printStackTrace();
}
创建自定义图库
您可以使用以下代码创建自定义图库:
说明 请根据您所需要的业务场景设置不同的参数。
CreateImageLibRequest createImageLibRequest = new CreateImageLibRequest();
createImageLibRequest.setServiceModule("open_api");
createImageLibRequest.setName("鉴黄黑库");
createImageLibRequest.setScene("PORN");
createImageLibRequest.setCategory("BLACK");
try {
CreateImageLibResponse createImageLibResponse = client.getAcsResponse(createImageLibRequest);
System.out.println(JSON.toJSONString(createImageLibResponse));
} catch (ClientException e) {
e.printStackTrace();
}
修改自定义图库
您可以使用以下代码修改自定义图库的名称及其适用的bizType:
UpdateImageLibRequest updateImageLibRequest = new UpdateImageLibRequest();
//图库id
updateImageLibRequest.setId(12345);
updateImageLibRequest.setName("鉴黄黑库改名");
updateImageLibRequest.setBizTypes(JSON.toJSONString(Arrays.asList("comment")));
updateImageLibRequest.setCategory("WHITE");
updateImageLibRequest.setScene("PORN");
try {
UpdateImageLibResponse updateImageLibResponse = client.getAcsResponse(updateImageLibRequest);
System.out.println(JSON.toJSONString(updateImageLibResponse));
} catch (ClientException e) {
e.printStackTrace();
删除自定义图库
您可以使用以下代码删除自定义图库:
说明 删除自定义图库时,图库下的所有图片也将被删除。
DeleteImageLibRequest deleteImageLibRequest = new DeleteImageLibRequest();
//图库id
deleteImageLibRequest.setId(12345);
try {
DeleteImageLibResponse deleteImageLibResponse = client.getAcsResponse(deleteImageLibRequest);
System.out.println(JSON.toJSONString(deleteImageLibResponse));
} catch (ClientException e) {
e.printStackTrace();
}
获取自定义图库图片列表
您可以使用以下代码获取自定义图库中所有已添加的图片列表:
DescribeImageFromLibRequest describeImageFromLibRequest = new DescribeImageFromLibRequest();
describeImageFromLibRequest.setImageLibId(1519);
describeImageFromLibRequest.setPageSize(20);
describeImageFromLibRequest.setCurrentPage(1);
try {
DescribeImageFromLibResponse describeImageFromLibResponse = client.getAcsResponse(describeImageFromLibRequest);
System.out.println(JSON.toJSONString(describeImageFromLibResponse));
} catch (ClientException e) {
e.printStackTrace();
}
向自定义图库中添加图片
您可以使用以下代码向自定义图库中添加图片。添加图片的过程包括:
- 获取图片上传凭证。
- 上传图片到图片空间。
- 提交上传后的库信息、图片路径信息到服务器。
//获取上传凭证
DescribeUploadInfoRequest describeUploadInfoRequest = new DescribeUploadInfoRequest();
describeUploadInfoRequest.setBiz("customImageLib");
DescribeUploadInfoResponse describeUploadInfoResponse = null;
try {
describeUploadInfoResponse = client.getAcsResponse(describeUploadInfoRequest);
System.out.println(JSON.toJSONString(describeUploadInfoResponse));
} catch (ClientException e) {
e.printStackTrace();
}
//上传图片
CustomLibUploader customLibUploader = new CustomLibUploader();
String object = null;
try {
object = customLibUploader.uploadFile(describeUploadInfoResponse.getHost(), describeUploadInfoResponse.getFolder(), describeUploadInfoResponse.getAccessid(),
describeUploadInfoResponse.getPolicy(), describeUploadInfoResponse.getSignature(),
"/Users/liuhai.lh/Desktop/a.jpg");
} catch (Exception e) {
e.printStackTrace();
}
if(org.apache.commons.lang.StringUtils.isNotBlank(object)){
UploadImageToLibRequest imageToLibRequest = new UploadImageToLibRequest();
imageToLibRequest.setImageLibId(1519);
imageToLibRequest.setImages(JSON.toJSONString(Arrays.asList(object)));
try {
UploadImageToLibResponse uploadImageToLibResponse = client.getAcsResponse(imageToLibRequest);
System.out.println(JSON.toJSONString(uploadImageToLibResponse));
} catch (ClientException e) {
e.printStackTrace();
}
}
删除自定义图片
您可以使用以下代码删除自定义图库中的多张自定义图片:
DeleteImageFromLibRequest deleteImageFromLibRequest = new DeleteImageFromLibRequest();
deleteImageFromLibRequest.setIds(JSON.toJSONString(Arrays.asList(669310)));
try {
DeleteImageFromLibResponse deleteImageFromLibResponse = client.getAcsResponse(deleteImageFromLibRequest);
System.out.println(JSON.toJSONString(deleteImageFromLibResponse));
} catch (ClientException e) {
e.printStackTrace();
}
在文档使用中是否遇到以下问题
更多建议
匿名提交