audit.js 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  1. const COS = require('../lib/cos-wx-sdk-v5');
  2. const config = require('../config');
  3. const { cos, requestCallback } = require('../tools');
  4. const auditDao = {
  5. '图片同步审核 getImageAuditing': getImageAuditing,
  6. '图片批量审核 postImagesAuditing': postImagesAuditing,
  7. '查询图片审核任务结果 getImageAuditingResult': getImageAuditingResult,
  8. '提交视频审核任务 postVideoAuditing': postVideoAuditing,
  9. '查询视频审核任务结果 getVideoAuditingResult': getVideoAuditingResult,
  10. '提交音频审核任务 postAudioAuditing': postAudioAuditing,
  11. '查询音频审核任务结果 getAudioAuditingResult': getAudioAuditingResult,
  12. '提交文本审核任务 postTextAuditing': postTextAuditing,
  13. '提交直播审核任务 postLiveAuditing': postLiveAuditing,
  14. '查询直播审核任务结果 getLiveAuditingResult': getLiveAuditingResult,
  15. };
  16. function getImageAuditing() {
  17. cos.request(
  18. {
  19. Bucket: config.Bucket,
  20. Region: config.Region,
  21. Method: 'GET',
  22. Key: '1.png',
  23. Query: {
  24. 'ci-process': 'sensitive-content-recognition' /** 固定值,必须 */,
  25. 'biz-type': '' /** 审核类型,非必须 */,
  26. 'detect-url': '' /** 审核任意公网可访问的图片链接,非必须,与Key二选一传递 */,
  27. interval: 5 /** 审核 GIF 动图时,每隔interval帧截取一帧,非必须 */,
  28. 'max-frames': 5 /** 审核 GIF 动图时,最大截帧数,非必须 */,
  29. 'large-image-detect': '0' /** 是否需要压缩图片后再审核,非必须 */,
  30. },
  31. },
  32. function (err, data) {
  33. console.log(err || data);
  34. }
  35. );
  36. }
  37. function postImagesAuditing() {
  38. var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com';
  39. var url = 'https://' + host + '/image/auditing';
  40. var body = COS.util.json2xml({
  41. Request: {
  42. Input: [
  43. {
  44. Object: '1.png',
  45. },
  46. {
  47. Object: '6.png',
  48. },
  49. ],
  50. Conf: {
  51. BizType: '',
  52. },
  53. },
  54. });
  55. cos.request(
  56. {
  57. Bucket: config.Bucket,
  58. Region: config.Region,
  59. Method: 'POST',
  60. Url: url,
  61. Key: '/image/auditing',
  62. ContentType: 'application/xml',
  63. Body: body,
  64. },
  65. function (err, data) {
  66. console.log(err || data);
  67. }
  68. );
  69. }
  70. function getImageAuditingResult() {
  71. var jobId = 'si8263213daf3711eca0d1525400d88xxx'; // jobId可以通过图片批量审核返回
  72. var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com';
  73. var url = 'https://' + host + '/image/auditing/' + jobId;
  74. cos.request(
  75. {
  76. Bucket: config.Bucket,
  77. Region: config.Region,
  78. Method: 'GET',
  79. Key: '/image/auditing/' + jobId,
  80. Url: url,
  81. },
  82. function (err, data) {
  83. console.log(err || data);
  84. }
  85. );
  86. }
  87. function postVideoAuditing() {
  88. var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com';
  89. var url = 'https://' + host + '/video/auditing';
  90. var body = COS.util.json2xml({
  91. Request: {
  92. Input: {
  93. Object: '1.mp4',
  94. },
  95. Conf: {
  96. BizType: '',
  97. Snapshot: {
  98. Count: 1000, // 视频截帧数量
  99. },
  100. DetectContent: 1, // 是否审核视频声音,0-只审核视频不审核声音;1-审核视频+声音
  101. },
  102. },
  103. });
  104. cos.request(
  105. {
  106. Bucket: config.Bucket,
  107. Region: config.Region,
  108. Method: 'POST',
  109. Url: url,
  110. Key: '/video/auditing',
  111. ContentType: 'application/xml',
  112. Body: body,
  113. },
  114. function (err, data) {
  115. console.log(err || data);
  116. }
  117. );
  118. }
  119. function getVideoAuditingResult() {
  120. var jobId = 'av5bd873d9f39011ecb6c95254009a49da'; // jobId可以通过提交视频审核任务返回
  121. var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com';
  122. var url = 'https://' + host + '/video/auditing/' + jobId;
  123. cos.request(
  124. {
  125. Bucket: config.Bucket,
  126. Region: config.Region,
  127. Method: 'GET',
  128. Key: '/video/auditing/' + jobId,
  129. Url: url,
  130. },
  131. function (err, data) {
  132. console.log(err || data);
  133. }
  134. );
  135. }
  136. function postAudioAuditing() {
  137. var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com';
  138. var url = 'https://' + host + '/audio/auditing';
  139. var body = COS.util.json2xml({
  140. Request: {
  141. Input: {
  142. Object: '1.mp3',
  143. },
  144. Conf: {
  145. BizType: '',
  146. },
  147. },
  148. });
  149. cos.request(
  150. {
  151. Bucket: config.Bucket,
  152. Region: config.Region,
  153. Method: 'POST',
  154. Url: url,
  155. Key: '/audio/auditing',
  156. ContentType: 'application/xml',
  157. Body: body,
  158. },
  159. function (err, data) {
  160. console.log(err || data);
  161. }
  162. );
  163. }
  164. function getAudioAuditingResult() {
  165. var jobId = 'sa0c28d41daff411ecb23352540078cxxx'; // jobId可以通过提交音频审核任务返回
  166. var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com';
  167. var url = 'https://' + host + '/audio/auditing/' + jobId;
  168. cos.request(
  169. {
  170. Bucket: config.Bucket,
  171. Region: config.Region,
  172. Method: 'GET',
  173. Key: '/audio/auditing/' + jobId,
  174. Url: url,
  175. },
  176. function (err, data) {
  177. console.log(err || data);
  178. }
  179. );
  180. }
  181. function postTextAuditing() {
  182. var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com';
  183. var url = 'https://' + host + '/text/auditing';
  184. var body = COS.util.json2xml({
  185. Request: {
  186. Input: {
  187. Content: COS.util.encodeBase64('hello') /* 需要审核的文本内容 */,
  188. },
  189. Conf: {
  190. BizType: '',
  191. },
  192. },
  193. });
  194. cos.request(
  195. {
  196. Bucket: config.Bucket,
  197. Region: config.Region,
  198. Method: 'POST',
  199. Url: url,
  200. Key: '/text/auditing' /** 固定值,必须 */,
  201. ContentType: 'application/xml' /** 固定值,必须 */,
  202. Body: body,
  203. },
  204. function (err, data) {
  205. console.log(err || data);
  206. }
  207. );
  208. }
  209. function postLiveAuditing() {
  210. var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com';
  211. var url = 'https://' + host + '/video/auditing';
  212. var body = COS.util.json2xml({
  213. Request: {
  214. Type: 'live_video',
  215. Input: {
  216. Url: 'rtmp://example.com/live/123', // 需要审核的直播流播放地址
  217. // DataId: '',
  218. // UserInfo: {},
  219. },
  220. Conf: {
  221. BizType: '',
  222. // Callback: 'https://callback.com', // 回调地址,非必须
  223. // CallbackType: 1, // 回调片段类型,非必须
  224. },
  225. },
  226. });
  227. cos.request(
  228. {
  229. Bucket: config.Bucket,
  230. Region: config.Region,
  231. Method: 'POST',
  232. Url: url,
  233. Key: '/video/auditing',
  234. ContentType: 'application/xml',
  235. Body: body,
  236. },
  237. function (err, data) {
  238. console.log(err || data);
  239. }
  240. );
  241. }
  242. function getLiveAuditingResult() {
  243. var jobId = 'av2b14a74dbd9011edb05a52540084c0xx'; // jobId可以通过提交直播审核任务返回
  244. var host = config.Bucket + '.ci.' + config.Region + '.myqcloud.com';
  245. var url = 'https://' + host + '/video/auditing/' + jobId;
  246. cos.request(
  247. {
  248. Bucket: config.Bucket,
  249. Region: config.Region,
  250. Method: 'GET',
  251. Key: '/video/auditing/' + jobId,
  252. Url: url,
  253. },
  254. function (err, data) {
  255. console.log(err || data);
  256. }
  257. );
  258. }
  259. module.exports = auditDao;