package com.zhiyang.media.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.green.model.v20170112.ImageSyncScanRequest;
import com.aliyuncs.green.model.v20170112.TextScanRequest;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.http.HttpResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import com.zhiyang.media.bean.Result;
import com.zhiyang.media.bean.TXTResult;
import java.util.*;
public class ScanUtils {
/**
* TODO 图片扫描
* @param url
* @param type
* @return
* @throws Exception
*/
public static List<Result> scanIMG(String url, String type) throws Exception {
//请替换成你自己的accessKeyId、accessKeySecret
IClientProfile profile = DefaultProfile.getProfile("cn-shanghai", "LTAIBGuuqB9sgjr7", "vPdh99SPWIRA8jAPBEVA3bXXs9zOga");
DefaultProfile.addEndpoint("cn-shanghai", "cn-shanghai", "Green", "green.cn-shanghai.aliyuncs.com");
IAcsClient client = new DefaultAcsClient(profile);
ImageSyncScanRequest imageSyncScanRequest = new ImageSyncScanRequest();
imageSyncScanRequest.setAcceptFormat(FormatType.JSON); // 指定api返回格式
imageSyncScanRequest.setContentType(FormatType.JSON);
imageSyncScanRequest.setMethod(com.aliyuncs.http.MethodType.POST); // 指定请求方法
imageSyncScanRequest.setEncoding("utf-8");
imageSyncScanRequest.setRegionId("cn-shanghai");
List<Map<String, Object>> tasks = new ArrayList<Map<String, Object>>();
Map<String, Object> task = new LinkedHashMap<String, Object>();
task.put("dataId", UUID.randomUUID().toString());
task.put("url",url);
task.put("time", new Date());
tasks.add(task);
JSONObject data = new JSONObject();
/**
* porn: 色情
* terrorism: 暴恐
* qrcode: 二维码
* ad: 图片广告
* ocr: 文字识别
*/
data.put("scenes", Arrays.asList("porn","ad","terrorism","qrcode"));
data.put("tasks", tasks);
imageSyncScanRequest.setContent(data.toJSONString().getBytes("UTF-8"), "UTF-8", FormatType.JSON);
/**
* 请务必设置超时时间
*/
imageSyncScanRequest.setConnectTimeout(6000);
imageSyncScanRequest.setReadTimeout(10000);
List<Result> list = new ArrayList<Result>();
try {
HttpResponse httpResponse = client.doAction(imageSyncScanRequest);
if (httpResponse.isSuccess()) {
JSONObject scrResponse = JSON.parseObject(new String(httpResponse.getContent(), "UTF-8"));
// System.out.println(JSON.toJSONString(scrResponse, true));
if (200 == scrResponse.getInteger("code")) {
JSONArray taskResults = scrResponse.getJSONArray("data");
for (Object taskResult : taskResults) {
if(200 == ((JSONObject)taskResult).getInteger("code")){
JSONArray sceneResults = ((JSONObject)taskResult).getJSONArray("results");
for (Object sceneResult : sceneResults) {
String scene = ((JSONObject)sceneResult).getString("scene");
String rate = ((JSONObject)sceneResult).getString("rate");
String label = ((JSONObject)sceneResult).getString("label");
String suggestion = ((JSONObject)sceneResult).getString("suggestion");
//根据scene和suggetion做相关的处理
//do something
Result r = new Result();
r.setType(type);
r.setUrl(url);
r.setLabel(label);
r.setRate(Double.parseDouble(rate));
r.setScene(scene);
r.setSuggestion(suggestion);
list.add(r);
// System.out.println(r);
// System.out.println(list);
}
return list;
}else{
System.out.println("task process fail:" + ((JSONObject)taskResult).getInteger("code"));
}
}
} else {
System.out.println("detect not success. code:" + scrResponse.getInteger("code"));
}
} else {
System.out.println("response not success. status:" + httpResponse.getStatus());
}
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* TODO 文本扫描
* @param txt
* @return
* @throws Exception
*/
public static TXTResult ScanTXT(String txt) throws Exception {
//请替换成你自己的accessKeyId、accessKeySecret
IClientProfile profile = DefaultProfile.getProfile("cn-shanghai", "LTAIBGuuqB9sgjr7", "vPdh99SPWIRA8jAPBEVA3bXXs9zOga");
DefaultProfile.addEndpoint("cn-shanghai", "cn-shanghai", "Green", "green.cn-shanghai.aliyuncs.com");
IAcsClient client = new DefaultAcsClient(profile);
TextScanRequest textScanRequest = new TextScanRequest();
textScanRequest.setAcceptFormat(FormatType.JSON); // 指定api返回格式
textScanRequest.setContentType(FormatType.JSON);
textScanRequest.setMethod(com.aliyuncs.http.MethodType.POST); // 指定请求方法
textScanRequest.setEncoding("UTF-8");
textScanRequest.setRegionId("cn-shanghai");
List<Map<String, Object>> tasks = new ArrayList<Map<String, Object>>();
Map<String, Object> task1 = new LinkedHashMap<String, Object>();
TXTResult r = new TXTResult();
r.setTxtcontent(txt);
task1.put("dataId", UUID.randomUUID().toString());
task1.put("content", txt);
tasks.add(task1);
JSONObject data = new JSONObject();
/**
* 文本垃圾检测: antispam
* 关键词检测: keyword
**/
data.put("scenes", Arrays.asList("antispam"));
data.put("tasks", tasks);
// System.out.println(JSON.toJSONString(data, true));
textScanRequest.setContent(data.toJSONString().getBytes("UTF-8"), "UTF-8", FormatType.JSON);
/**
* 请务必设置超时时间
*/
textScanRequest.setConnectTimeout(6000);
textScanRequest.setReadTimeout(10000);
try {
HttpResponse httpResponse = client.doAction(textScanRequest);
if(httpResponse.isSuccess()){
JSONObject scrResponse = JSON.parseObject(new String(httpResponse.getContent(), "UTF-8"));
// System.out.println(JSON.toJSONString(scrResponse, true));
if (200 == scrResponse.getInteger("code")) {
JSONArray taskResults = scrResponse.getJSONArray("data");
for (Object taskResult : taskResults) {
if(200 == ((JSONObject)taskResult).getInteger("code")){
JSONArray sceneResults = ((JSONObject)taskResult).getJSONArray("results");
for (Object sceneResult : sceneResults) {
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
基于阿里云发送短信.zip (55个子文件)
资料总结
lib
httpasyncclient-4.1.jar 173KB
ons-client-1.7.0.Final.jar 3.86MB
aliyun-sdk-mns-1.1.8.jar 305KB
commons-pool2-2.3.jar 107KB
httpclient-4.4.1.jar 704KB
gson-2.6.2.jar 224KB
commons-logging-1.1.3.jar 61KB
commons-lang3-3.4.jar 424KB
mongo-java-driver-3.4.2.jar 1.6MB
aliyun-java-sdk-core-3.0.7.jar 81KB
commons-codec-1.9.jar 258KB
fastjson-1.2.7.jar 407KB
aliyun-java-sdk-core-3.3.1.jar 105KB
bson-3.6.0.jar 383KB
log4j-1.2.17.jar 478KB
aliyun-java-sdk-dysmsapi-1.0.0.jar 18KB
jedis-2.7.2.jar 511KB
mongodb-driver-core-3.6.0.jar 1.06MB
aliyun-java-sdk-green-3.0.0.jar 21KB
httpcore-nio-4.4.1.jar 347KB
mongodb-driver-3.6.0.jar 378KB
httpcore-4.4.1.jar 315KB
.classpath 2KB
.settings
org.eclipse.jdt.core.prefs 598B
src
com
zhiyang
media
ContentCheckDemo.java 333B
utils
DocumentUtils.java 1KB
CheckUtils.java 6KB
MongoUtils.java 2KB
JedisUtils.java 3KB
ScanUtils.java 9KB
ResultUtils.java 1KB
dao
DaoImpl.java 6KB
ExecutorProcessPool.java 991B
ContentCheckConsumer.java 5KB
ExecutorServiceFactory.java 1KB
bean
Audit.java 1KB
Result.java 1KB
TXTResult.java 1KB
bin
com
zhiyang
media
ExecutorServiceFactory.class 1KB
ExecutorServiceFactory$1.class 2KB
utils
MongoUtils.class 3KB
DocumentUtils.class 2KB
ResultUtils.class 2KB
ScanUtils.class 8KB
JedisUtils.class 2KB
CheckUtils.class 6KB
dao
DaoImpl.class 5KB
ContentCheckConsumer.class 5KB
ExecutorProcessPool.class 2KB
ContentCheckDemo.class 782B
ContentCheckDemo$Test.class 557B
bean
TXTResult.class 2KB
Result.class 2KB
Audit.class 2KB
.project 388B
共 55 条
- 1
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- desc
- VB+ACCESS超市管理系统设计(源代码+系统).zip
- xiulian.jpg
- 130平米全包装修清单明细excel表格.xls
- TI杯大奖赛本科组+研究生组论文+源代码+PCB基于LM3S811的声控轮式机器人
- TI杯大奖赛本科组+研究生组论文+源代码+PCB基于GSM无线传输技术的远程手机遥控系统
- TI杯大奖赛本科组+研究生组论文+源代码+PCB基于FastICA盲源分离算法的语音增强系统
- 15第十五章常用医学统计软件简介.pdf
- TI杯大奖赛本科组+研究生组论文+源代码+PCB基于DSP和双向Z源逆变器的纯电动汽车电机驱动与车辆控制系统
- TI杯大奖赛本科组+研究生组论文+源代码+PCB基于DSP的机械手控制系统
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功