本文介绍了如何使用Java SDK检测OSS违规的内容。
前提条件
安装Java依赖。关于安装Java依赖的具体操作,请参见安装Java依赖。
说明请一定按照安装Java依赖页面中的版本安装,否则会导致调用失败。
如果使用本地文件或者二进制文件检测,请下载并在项目工程中引入Extension.Uploader工具类。
获取OSS违规检测数据
您可以参考以下代码示例获取OSS违规检测数据:
说明
以下代码仅为简单示例,具体的接口参数请参考OSS违规检测API。
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.green.model.v20170823.DescribeOssResultItemsRequest;
import com.aliyuncs.green.model.v20170823.DescribeOssResultItemsResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
public class Main {
public static void main(String[] args) {
/**
* 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
* 常见获取环境变量方式:
* 方式一:
* 获取RAM用户AccessKey ID:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 获取RAM用户AccessKey Secret:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
* 方式二:
* 获取RAM用户AccessKey ID:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 获取RAM用户AccessKey Secret:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
DefaultProfile profile = DefaultProfile.getProfile(
"cn-shanghai",
"建议从环境变量中获取RAM用户AccessKey ID",
"建议从环境变量中获取RAM用户AccessKey Secret");
DefaultProfile.addEndpoint("cn-shanghai", "Green", "green.cn-shanghai.aliyuncs.com");
IAcsClient client = new DefaultAcsClient(profile);
DescribeOssResultItemsRequest describeKeywordLibRequest = new DescribeOssResultItemsRequest();
describeKeywordLibRequest.setResourceType("VIDEO");
describeKeywordLibRequest.setScene("porn");
describeKeywordLibRequest.setStock(false);
describeKeywordLibRequest.setStartDate("2018-12-07 00:00:00 +0800");
describeKeywordLibRequest.setEndDate("2018-12-13 15:00:53 +0800");
try {
DescribeOssResultItemsResponse describeOssResultItemsResponse = client.getAcsResponse(describeKeywordLibRequest);
// 结果总数。
describeOssResultItemsResponse.getTotalCount();
// 当前页码。
describeOssResultItemsResponse.getCurrentPage();
// 分页大小。
describeOssResultItemsResponse.getPageSize();
// 扫描结果列表。
for (DescribeOssResultItemsResponse.ScanResult scanResult : describeOssResultItemsResponse.getScanResultList()) {
// 资源所在的OSS Bucket。
scanResult.getBucket();
// 数据ID。
scanResult.getDataId();
// 资源的处理状态
scanResult.getHandleStatus();
// 扫描结果的唯一标识。
scanResult.getId();
// 原始文件链接地址。
scanResult.getNewUrl();
// OSS Object名称。
scanResult.getObject();
// 请求时间。
scanResult.getRequestTime();
// 资源的状态
scanResult.getResourceStatus();
// 扫描完成时间。
scanResult.getScanFinishedTime();
scanResult.getScore();
// 建议您执行的后续操作。
scanResult.getSuggestion();
// 任务ID。
scanResult.getTaskId();
// 缩略图链接。
scanResult.getThumbnail();
// (仅使用视频对象)存在风险的问题帧。
for (DescribeOssResultItemsResponse.ScanResult.FrameResult frameResult : scanResult.getFrameResults()) {
// 该帧的位置,即距离视频开头的偏移量,单位为秒。
frameResult.getOffset();
// 该帧的缩略图链接。
frameResult.getThumbnail();
// 该帧的链接。
frameResult.getUrl();
}
}
} catch (ClientException e) {
e.printStackTrace();
}
}
}
对OSS的审核结果进行标记
该接口能够对OSS的扫描结果进行标记和操作。如果需要对已检测出结果的内容执行删除、标记为正常并忽略,或者解除冻结等操作,您可以调用本接口。
说明
以下代码仅为简单示例,具体的接口参数请参考OSS违规检测API。
import com.alibaba.fastjson.JSON;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.green.model.v20170823.MarkOssResultRequest;
import com.aliyuncs.green.model.v20170823.MarkOssResultResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
/**
* 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
* 常见获取环境变量方式:
* 方式一:
* 获取RAM用户AccessKey ID:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 获取RAM用户AccessKey Secret:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
* 方式二:
* 获取RAM用户AccessKey ID:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 获取RAM用户AccessKey Secret:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
DefaultProfile profile = DefaultProfile.getProfile(
"cn-shanghai",
"建议从环境变量中获取RAM用户AccessKey ID",
"建议从环境变量中获取RAM用户AccessKey Secret");
DefaultProfile.addEndpoint("cn-shanghai", "Green", "green.cn-shanghai.aliyuncs.com");
IAcsClient client = new DefaultAcsClient(profile);
MarkOssResultRequest markOssResultRequest = new MarkOssResultRequest();
markOssResultRequest.setResourceType("VIDEO");
markOssResultRequest.setScene("terrorism ");
markOssResultRequest.setStock(false);
markOssResultRequest.setIds(JSON.toJSONString(Arrays.asList(24930001L)));
markOssResultRequest.setOperation("ignore");
try {
MarkOssResultResponse markOssResultResponse = client.getAcsResponse(markOssResultRequest);
// 请求ID,无异常则表示创建成功。
String requestId = markOssResultResponse.getRequestId();
System.out.println("mark success." + JSON.toJSONString(markOssResultResponse));
} catch (ClientException e) {
e.printStackTrace();
}
}
}
以文件形式导出OSS违规检测结果
您可以参考以下代码示例通过文件形式导出OSS违规检测结果:
说明
以下代码仅为简单示例,具体的接口参数请参考OSS违规检测API。
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.green.model.v20170823.ExportOssResultRequest;
import com.aliyuncs.green.model.v20170823.ExportOssResultResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
public class Main {
public static void main(String[] args) {
/**
* 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
* 常见获取环境变量方式:
* 方式一:
* 获取RAM用户AccessKey ID:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 获取RAM用户AccessKey Secret:System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
* 方式二:
* 获取RAM用户AccessKey ID:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_ID");
* 获取RAM用户AccessKey Secret:System.getProperty("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
*/
DefaultProfile profile = DefaultProfile.getProfile(
"cn-shanghai",
"建议从环境变量中获取RAM用户AccessKey ID",
"建议从环境变量中获取RAM用户AccessKey Secret");
DefaultProfile.addEndpoint("cn-shanghai", "Green", "green.cn-shanghai.aliyuncs.com");
IAcsClient client = new DefaultAcsClient(profile);
ExportOssResultRequest exportOssResultRequest = new ExportOssResultRequest();
exportOssResultRequest.setResourceType("VIDEO");
exportOssResultRequest.setScene("porn");
exportOssResultRequest.setStock(false);
exportOssResultRequest.setStartDate("2018-12-07 00:00:00 +0800");
exportOssResultRequest.setEndDate("2018-12-13 15:00:53 +0800");
try {
ExportOssResultResponse exportOssResultResponse = client.getAcsResponse(exportOssResultRequest);
// 返回文件的链接地址。
String fileUrl = exportOssResultResponse.getFileUrl();
System.out.println("export success. file url:" + fileUrl);
} catch (ClientException e) {
e.printStackTrace();
}
}
}
文档内容是否对您有帮助?