文件审核

本文介绍如何使用Go SDK文件审核接口,检测文件中的文字和图片信息。

功能描述

文件审核目前只支持异步检测(异步检测不会实时返回检测结果)任务。关于参数的详细说明,请参见文件异步检测

前提条件

已安装Go依赖。关于安装Go依赖的具体操作,请参见安装Go依赖

说明

请一定按照安装Go依赖页面中的版本安装,否则会导致调用失败。

提交文件异步检测任务

接口

描述

支持的地域

FileAsyncScanV2Request

提交文件异步检测任务,对文件中的文字和图片进行检测。

  • cn-shanghai:华东2(上海)

  • cn-beijing:华北2(北京)

示例代码

package main

import (
   "encoding/json"
   "fmt"
   "github.com/aliyun/alibaba-cloud-sdk-go/services/green"
   "strconv"
)

func main() {
   /**
    * 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
    * 常见获取环境变量方式:
    *     获取RAM用户AccessKey ID:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
    *     获取RAM用户AccessKey Secret:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
    */
   client, _err := green.NewClientWithAccessKey(
        "cn-shanghai", 
        "建议从环境变量中获取RAM用户AccessKey ID", 
        "建议从环境变量中获取RAM用户AccessKey Secret")
   if err != nil {
      fmt.Println(err.Error())
      return
   }

   task := map[string]interface{}{
      "dataId": "检测数据ID", "url": "待检测文件链接地址",
   }
  // scenes:检测场景,支持指定多个场景。
   content, _ := json.Marshal(
      map[string]interface{}{
         "textScenes": [...]string{"antispam"}, "imageScenes": [...]string{"porn", "terrorism"},
         "tasks": [...]map[string]interface{}{task}, "bizType": "业务场景",
      },
   )

   request := green.CreateFileAsyncScanRequest()
   request.SetContent(content)
   response, _err := client.FileAsyncScan(request)
   if _err != nil {
      fmt.Println(_err.Error())
      return
   }
   if response.GetHttpStatus() != 200 {
      fmt.Println("response not success. status:" + strconv.Itoa(response.GetHttpStatus()))
   }
   fmt.Println(response.GetHttpContentString())
}

获取文件异步检测任务结果

接口

描述

支持的Region

FileAsyncScanResultsRequest

获取文件异步检测结果。

  • cn-shanghai:华东2(上海)

  • cn-beijing:华北2(北京)

示例代码

package main

import (
   "encoding/json"
   "fmt"
   "github.com/aliyun/alibaba-cloud-sdk-go/services/green"
   "strconv"
)

func main() {
   /**
    * 注意:此处实例化的client尽可能重复使用,提升检测性能。避免重复建立连接。
    * 常见获取环境变量方式:
    *     获取RAM用户AccessKey ID:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
    *     获取RAM用户AccessKey Secret:os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
    */
   client, _err := green.NewClientWithAccessKey(
        "cn-shanghai", 
        "建议从环境变量中获取RAM用户AccessKey ID", 
        "建议从环境变量中获取RAM用户AccessKey Secret")
   if err != nil {
      fmt.Println(err.Error())
      return
   }

   content, _ := json.Marshal([...]string{"文件异步检测任务ID"})

   request := green.CreateFileAsyncScanResultsRequest()
   request.SetContent(content)
   response, _err := client.FileAsyncScanResults(request)
   if _err != nil {
      fmt.Println(_err.Error())
      return
   }
   if response.GetHttpStatus() != 200 {
      fmt.Println("response not success. status:" + strconv.Itoa(response.GetHttpStatus()))
   }
   fmt.Println(response.GetHttpContentString())
}