本文介绍如何使用Go SDK文件审核接口,检测文件中的文字和图片信息。
功能描述
文件审核目前只支持异步检测(异步检测不会实时返回检测结果)任务。关于参数的详细说明,请参见文件异步检测。
前提条件
提交文件异步检测任务
接口 | 描述 | 支持的地域 |
FileAsyncScanV2Request | 提交文件异步检测任务,对文件中的文字和图片进行检测。 |
|
示例代码
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 | 获取文件异步检测结果。 |
|
示例代码
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())
}
文档内容是否对您有帮助?