Go SDK

本文介绍图像搜索服务Go SDK的使用方法及示例。

说明

如需了解更多产品详情和获取技术支持,请单击在线咨询或通过钉钉群(35035130)联系我们。

接口列表

接口名称

接口说明

Add

增加图片。

SearchImageByPic

使用图片进行搜索

SearchImageByName

指定名称,使用已入库的图片进行搜索。

Delete

删除图片。

UpdateImage

修改图片。

Detail

查询实例信息。

DumpMeta

元信息导出任务。

DumpMetaList

元信息导出任务列表。

BatchTask

批量任务。

BatchTaskList

批量任务列表。

准备工作

  • 在安装和使用阿里云SDK前,确保您已经注册阿里云账号并生成访问密钥(AccessKey)。详情请参见创建AccessKey

  • 使用go工具执行以下命令,安装阿里云Go SDK:

go get github.com/alibabacloud-go/imagesearch-20201214/v4

Add接口

  • 代码示例

    package main
    
     import (
        "fmt"
        "os"
        rpc "github.com/alibabacloud-go/darabonba-openapi/v2/client"
        imagesearch "github.com/alibabacloud-go/imagesearch-20201214/v4/client"
        util "github.com/alibabacloud-go/tea-utils/v2/service"
    )
    
    func main() {
        // 初始化 config 
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")).
            SetAccessKeySecret(os.Getenv("CC_SK_ENV")).
            SetType("access_key").
            // 请更换成您购买实例的区域,例如购买的是杭州区域,则为"imagesearch.cn-hangzhou.aliyuncs.com"
            SetEndpoint("imagesearch.cn-shanghai.aliyuncs.com").
    
            // 以下为内网(VPC)访问方式
            // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // SetEndpointType("internal").  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
            // SetEndpoint("imagesearch-vpc.cn-shanghai.aliyuncs.com"). // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
            // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为"cn-hangzhou"
            SetRegionId("cn-shanghai")
            // 创建客户端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        // 初始化 runtimeObject
        var runtimeObject = new(util.RuntimeOptions)
        b, err := os.Open("D:/123.jpg")
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.AddImageAdvanceRequest).
            // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
            SetInstanceName("XXXXXXXX").
            // 必填,图片名称,最多支持 512个字符。
            // 1. ProductId + PicName唯一确定一张图片。
            // 2. 如果多次添加图片具有相同的ProductId + PicName,以最后一次添加为准,前面添加的图片将被覆盖。
            SetPicName("test").
            // 必填,商品id,最多支持 512个字符。
            // 一个商品可有多张图片。
            SetProductId("test").
            // 图片内容,最多支持 4MB大小图片以及5s的传输等待时间。当前仅支持PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、PPM格式图片;
            // 对于商品、商标、通用图片搜索,图片长和宽的像素必须都大于等于100且小于等于4096;
            // 对于布料搜索,图片长和宽的像素必须都大于等于448且小于等于4096;
            // 图像中不能带有旋转信息图片内容,最多支持 2MB大小图片以及5s的传输等待时间。当前仅支持jpg和png格式图片;
            SetPicContentObject(b).
            // 选填,图片类目。
            // 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取 。
            // 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
            SetCategoryId(2).
            // 选填,是否需要进行主体识别,默认为true。
            // 1.为true时,由系统进行主体识别,以识别的主体进行搜索,主体识别结果可在Response中获取。
            // 2. 为false时,则不进行主体识别,以整张图进行搜索。
            // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
            SetCrop(true).
            // 选填,图片的主体区域,格式为 x1,x2,y1,y2, 其中 x1,y1 是左上角的点,x2,y2是右下角的点。
            // 设置的region 区域不要超过图片的边界。
            // 若用户设置了Region,则不论Crop参数为何值,都将以用户输入Region进行搜索。
            // 对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
            SetRegion("167,477,220,407").
            // 选填,用户自定义的内容,最多支持 4096个字符。
            // 查询时会返回该字段。例如可添加图片的描述等文本。
            SetCustomContent("this is a simple test!").
            // 选填,整数类型属性,可用于查询时过滤,查询时会返回该字段。
            //  例如不同的站点的图片/不同用户的图片,可以设置不同的IntAttr,查询时通过过滤来达到隔离的目的
            SetIntAttr(100).
            // 选填,字符串类型属性,最多支持 128个字符。可用于查询时过滤,查询时会返回该字段。
            SetStrAttr("1")
            // 调用 api
        resp, err := client.AddImageAdvance(request, runtimeObject)
        if err != nil {
            fmt.Println(err.Error())
        }
        fmt.Println(resp)
    }
  • 结果示例

    {
       "RequestId": "B48CC953-F495-496C-BC96-B96826A860F1",
       "Success": true,
       "Message": "success",
       "Code": 0,
       "PicInfo": {
          "CategoryId": 2,
          "Region": "167,477,220,407"
       }
    }

SearchImageByPic接口

  • 代码示例

    package main
    
    import (
        "fmt"
        "os"
        rpc "github.com/alibabacloud-go/darabonba-openapi/v2/client"
        imagesearch "github.com/alibabacloud-go/imagesearch-20201214/v4/client"
        util "github.com/alibabacloud-go/tea-utils/v2/service"
    )
    
    func main() {
        // 初始化 config
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")).
            SetAccessKeySecret(os.Getenv("CC_SK_ENV")).
            SetType("access_key").
            // 请更换成您购买实例的区域,例如购买的是杭州区域,则为"imagesearch.cn-hangzhou.aliyuncs.com"
            SetEndpoint("imagesearch.cn-shanghai.aliyuncs.com").
    
            // 以下为内网(VPC)访问方式
            // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // SetEndpointType("internal").  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
            // SetEndpoint("imagesearch-vpc.cn-shanghai.aliyuncs.com"). // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
            // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为"cn-hangzhou"
            SetRegionId("cn-shanghai")
            // 创建客户端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        // 初始化 runtimeObject
        var runtimeObject = new(util.RuntimeOptions)
        b, err := os.Open("D:/123.jpg")
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.SearchImageByPicAdvanceRequest).
            // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
            SetInstanceName("xxxxxxxxxx").
            // 图片内容,最多支持 4MB大小图片以及5s的传输等待时间。当前仅支持PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、PPM格式图片;
            // 对于商品、商标、通用图片搜索,图片长和宽的像素必须都大于等于100且小于等于4096;
            // 对于布料搜索,图片长和宽的像素必须都大于等于448且小于等于4096;
            // 图像中不能带有旋转信息
            SetPicContentObject(b).
            // 选填,商品类目。
            // 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取 。
            // 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
            SetCategoryId(2).
            // 选填,返回结果的数目。取值范围:1-100。默认值:10。
            SetNum(10).
            // 选填,返回结果的起始位置。取值范围:0-499。默认值:0
            SetStart(0).
            // 选填,过滤条件
            // int_attr支持的操作符有>、>=、<、<=、=,str_attr支持的操作符有=和!=,多个条件之支持AND和OR进行连接。
            // 示例:
            //  1. 根据IntAttr过滤结果,int_attr>=100
            //  2. 根据StrAttr过滤结果,str_attr!="value1"
            //  3. 根据IntAttr和StrAttr联合过滤结果,int_attr=1000 AND str_attr="value1"
            SetFilter("int_attr=101 OR str_attr=\"2\"").
            // 选填,是否需要进行主体识别,默认为true。
            // 1.为true时,由系统进行主体识别,以识别的主体进行搜索,主体识别结果可在Response中获取。
            // 2. 为false时,则不进行主体识别,以整张图进行搜索。
            // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
            SetCrop(true).
            // 选填,图片的主体区域,格式为 x1,x2,y1,y2, 其中 x1,y1 是左上角的点,x2,y2是右下角的点。
            // 设置的region 区域不要超过图片的边界。
            // 若用户设置了Region,则不论Crop参数为何值,都将以用户输入Region进行搜索。
            // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
            SetRegion("167,476,220,407")
            // 调用 api
        resp, err := client.SearchImageByPicAdvance(request, runtimeObject)
        if err != nil {
            fmt.Println(err.Error())
        }
        fmt.Println(resp)
    }
  • 结果示例

    {
       "RequestId": "F468F52E-963A-452B-88E7-1C43F92C9D81",
       "Success": true,
       "Code": 0,
       "Msg": "success",
       "Auctions": [
          {
             "CategoryId": 2,
             "ProductId": "php",
             "PicName": "test",
             "CustomContent": "this is a simple test!",
             "SortExprValues": "292.509948730469;16",
             "IntAttr": 100,
             "StrAttr": "1",
             "Score": 1
          }
       ],
       "Head": {
          "DocsReturn": 1,
          "DocsFound": 1,
          "SearchTime": 121
       },
       "PicInfo": {
          "CategoryId": 2,
          "Region": "167,476,220,407",
          "AllCategories": [
             {
                "Id": 0,
                "Name": "Tops"
             },
             .......
             {
                "Id": 88888888,
                "Name": "Other"
             }
          ],
          "MultiRegion": [
                {
                   "Region": "112,440,76,387"
                }
          ],
       }
    }

SearchImageByName接口

  • package main
    
    import (
        "fmt"
        "os"
        rpc "github.com/alibabacloud-go/darabonba-openapi/v2/client"
        imagesearch "github.com/alibabacloud-go/imagesearch-20201214/v4/client"
        util "github.com/alibabacloud-go/tea-utils/v2/service"
    )
    
    func main() {
        // 初始化 config
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")).
            SetAccessKeySecret(os.Getenv("CC_SK_ENV")).
            SetType("access_key").
            // 请更换成您购买实例的区域,例如购买的是杭州区域,则为"imagesearch.cn-hangzhou.aliyuncs.com"
            SetEndpoint("imagesearch.cn-shanghai.aliyuncs.com").
    
            // 以下为内网(VPC)访问方式
            // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // SetEndpointType("internal").  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
            // SetEndpoint("imagesearch-vpc.cn-shanghai.aliyuncs.com"). // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
            // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为"cn-hangzhou"
            SetRegionId("cn-shanghai")
            // 创建客户端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.SearchImageByNameRequest).
            // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
            SetInstanceName("XXXXXXXXXXX").
            // 必填,图片名称,最多支持 512个字符。
            // 1. ProductId + PicName唯一确定一张图片。
            SetPicName("test").
            // 必填,商品id,最多支持 512个字符。
            // 一个商品可有多张图片。
            SetProductId("php").
            // 选填,商品类目。
            // 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取 。
            // 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
            SetCategoryId(2).
            // 选填,返回结果的数目。取值范围:1-100。默认值:10。
            SetNum(10).
            // 选填,返回结果的起始位置。取值范围:0-499。默认值:0。
            SetStart(0).
            // 选填,过滤条件
            // int_attr支持的操作符有>、>=、<、<=、=,str_attr支持的操作符有=和!=,多个条件之支持AND和OR进行连接。
            // 示例:
            //  1. 根据IntAttr过滤结果,int_attr>=100
            //  2. 根据StrAttr过滤结果,str_attr!="value1"
            //  3. 根据IntAttr和StrAttr联合过滤结果,int_attr=1000 AND str_attr="value1"
            SetFilter("str_attr=\"1\"") //设置字符串过滤条件
            // 调用 api
        resp, err := client.SearchImageByName(request)
        if err != nil {
            fmt.Println(err.Error())
        }
        fmt.Println(resp)
    }
  • 结果示例

    {
       "RequestId": "9011A4A3-7642-44C5-AA33-6E38BA2EA3F1",
       "Success": true,
       "Code": 0,
       "Msg": "success",
       "Auctions": [
          {
             "CategoryId": 2,
             "ProductId": "php",
             "PicName": "test",
             "CustomContent": "this is a simple test!",
             "SortExprValues": "7.33136443711219e+24;0",
             "IntAttr": 100,
             "StrAttr": "1",
             "Score": 1
          }
       ],
       "Head": {
          "DocsReturn": 1,
          "DocsFound": 1,
          "SearchTime": 12
       },
       "PicInfo": {
          "CategoryId": 2,
          "Region": null,
          "AllCategories": [
             {
                "Id": 0,
                "Name": "Tops"
             },
            .......
             {
                "Id": 88888888,
                "Name": "Other"
             }
          ],
          "MultiRegion": [
                {
                   "Region": "112,440,76,387"
                }
           ],
          "Region": "383,681,291,549"
       }
    }

Delete接口

  • 代码示例

    package main
    
    import (
        "fmt"
        "os"
        rpc "github.com/alibabacloud-go/darabonba-openapi/v2/client"
        imagesearch "github.com/alibabacloud-go/imagesearch-20201214/v4/client"
        util "github.com/alibabacloud-go/tea-utils/v2/service"
    )
    
    func main() {
        // 初始化 config
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")).
            SetAccessKeySecret(os.Getenv("CC_SK_ENV")).
            SetType("access_key").
            // 请更换成您购买实例的区域,例如购买的是杭州区域,则为"imagesearch.cn-hangzhou.aliyuncs.com"
            SetEndpoint("imagesearch.cn-shanghai.aliyuncs.com").
    
            // 以下为内网(VPC)访问方式
            // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // SetEndpointType("internal").  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
            // SetEndpoint("imagesearch-vpc.cn-shanghai.aliyuncs.com"). // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
            // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为"cn-hangzhou"
            SetRegionId("cn-shanghai")
            // 创建客户端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.DeleteImageRequest).
            // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
            SetInstanceName("XXXXXXXX").
            // 必填,图片名称,最多支持 512个字符。
            // 1. ProductId + PicName唯一确定一张图片。
            SetPicName("test").
            //  选填,图片名称。若不指定本参数,则删除ProductId下所有图片;若指定本参数,则删除ProductId+PicName指定的图片。
            SetProductId("php")
            // 调用 api
        resp, err := client.DeleteImage(request)
        if err != nil {
            fmt.Println(err.Error())
        }
        fmt.Println(resp)
    }
  • 结果示例

    {
       "RequestId": "C9432066-8918-447F-858B-B4B11E2A6941",
       "Success": true,
       "Message": "success",
       "Code": 0
    }

UpdateImage接口

  • 代码示例

    package main
    
    import (
        "fmt"
        "os"
        rpc "github.com/alibabacloud-go/darabonba-openapi/v2/client"
        imagesearch "github.com/alibabacloud-go/imagesearch-20201214/v4/client"
        util "github.com/alibabacloud-go/tea-utils/v2/service"
    )
    
    func main() {
        // 初始化 config
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")).
            SetAccessKeySecret(os.Getenv("CC_SK_ENV")).
            SetType("access_key").
            // 请更换成您购买实例的区域,例如购买的是杭州区域,则为"imagesearch.cn-hangzhou.aliyuncs.com"
            SetEndpoint("imagesearch.cn-shanghai.aliyuncs.com").
    
            // 以下为内网(VPC)访问方式
            // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // SetEndpointType("internal").  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
            // SetEndpoint("imagesearch-vpc.cn-shanghai.aliyuncs.com"). // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
            // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为"cn-hangzhou"
            SetRegionId("cn-shanghai")
            // 创建客户端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.UpdateImageRequest).
            // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
            SetInstanceName("XXXXXXXX").
            // 必填,图片名称不可修改。
            SetPicName("test").
            // 必填,商品ID 不可修改。
            SetProductId("php").
            // 选填,整数类型属性,可用于查询时过滤,查询时会返回改字段。
            SetIntAttr(100).
            // 选填,字符串类型属性,最多支持 128个字符。可用于查询时过滤,查询时会返回该字段。
            SetStrAttr("xxxx").        
            // 选填,用户自定义的内容,最多支持4096个字符。
            SetCustomContent("xxx")
            // 调用api
        resp, err := client.UpdateImage(request)
        if err != nil {
            fmt.Println(err.Error())
        }
        fmt.Println(resp.Body)
    }

  • 结果示例

    {
       "Code": 0,
       "RequestId": "63AB5A70-D314-13F9-AB28-0A7F03C7FC85",
       "Success": true
    }
                        

Detail接口

  • 代码示例

    package main
    
    import (
        "fmt"
        "os"
        rpc "github.com/alibabacloud-go/darabonba-openapi/v2/client"
        imagesearch "github.com/alibabacloud-go/imagesearch-20201214/v4/client"
        util "github.com/alibabacloud-go/tea-utils/v2/service"
    )
    
    func main() {
        // 初始化 config。
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")).
            SetAccessKeySecret(os.Getenv("CC_SK_ENV")).
            SetType("access_key").
            // 请更换成您购买实例的区域,例如购买的是杭州区域,则为"imagesearch.cn-hangzhou.aliyuncs.com"
            SetEndpoint("imagesearch.cn-shanghai.aliyuncs.com").
    
            // 以下为内网(VPC)访问方式
            // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // SetEndpointType("internal").  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
            // SetEndpoint("imagesearch-vpc.cn-shanghai.aliyuncs.com"). // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
            // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为"cn-hangzhou"
            SetRegionId("cn-shanghai")
            // 创建客户端。
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.DetailRequest).
            // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
            SetInstanceName("XXXXXXXX")
            // 调用 api。
        resp, err := client.Detail(request)
        if err != nil {
            fmt.Println(err.Error())
        }
        fmt.Println(resp.Body)
    }

  • 结果示例

    {
       "Instance": {
          "Capacity": 10,
          "Name": "xxxxx",
          "Qps": 1,
          "Region": "cn-shanghai",
          "ServiceType": 0,
          "TotalCount": 99999,
          "UtcCreate": "1620382716000",
          "UtcExpireTime": "1623081600000"
       },
       "RequestId": "13993EC0-C212-1BDC-8337-8D343A5510E6",
       "Success": true
    }
                        

DumpMeta接口

  • 代码示例

    package main
    
    import (
        "fmt"
        "os"
        rpc "github.com/alibabacloud-go/darabonba-openapi/v2/client"
        imagesearch "github.com/alibabacloud-go/imagesearch-20201214/v4/client"
        util "github.com/alibabacloud-go/tea-utils/v2/service"
    )
    
    func main() {
        // 初始化 config
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")).
            SetAccessKeySecret(os.Getenv("CC_SK_ENV")).
            SetType("access_key").
            // 请更换成您购买实例的区域,例如购买的是杭州区域,则为"imagesearch.cn-hangzhou.aliyuncs.com"
            SetEndpoint("imagesearch.cn-shanghai.aliyuncs.com").
    
            // 以下为内网(VPC)访问方式
            // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // SetEndpointType("internal").  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
            // SetEndpoint("imagesearch-vpc.cn-shanghai.aliyuncs.com"). // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
            // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为"cn-hangzhou"
            SetRegionId("cn-shanghai")
            // 创建客户端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.DumpMetaRequest).
            // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
            SetInstanceName("XXXXXXXX")
            // 调用 api。
        resp, err := client.DumpMeta(request)
        if err != nil {
            fmt.Println(err.Error())
        }
        fmt.Println(resp.Body)
    }

  • 结果示例

    {
      RequestId=FC4191AA-1D5B-1001-9A70-18FBB2BD265B,
      Data={
        DumpMetaStatus=PROCESSING,
        Id=567
      },
      Success=true
    }

DumpMetaList接口

  • 代码示例

    package main
    
    import (
        "fmt"
        "os"
        rpc "github.com/alibabacloud-go/darabonba-openapi/v2/client"
        imagesearch "github.com/alibabacloud-go/imagesearch-20201214/v4/client"
        util "github.com/alibabacloud-go/tea-utils/v2/service"
    )
    
    func main() {
        // 初始化 config
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")).
            SetAccessKeySecret(os.Getenv("CC_SK_ENV")).
            SetType("access_key").
            // 请更换成您购买实例的区域,例如购买的是杭州区域,则为"imagesearch.cn-hangzhou.aliyuncs.com"
            SetEndpoint("imagesearch.cn-shanghai.aliyuncs.com").
    
            // 以下为内网(VPC)访问方式
            // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // SetEndpointType("internal").  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
            // SetEndpoint("imagesearch-vpc.cn-shanghai.aliyuncs.com"). // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
            // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为"cn-hangzhou"
            SetRegionId("cn-shanghai")
            // 创建客户端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.DumpMetaListRequest).
            // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
            SetInstanceName("XXXXXXXX").
            // 选填,任务id。
            SetId(1464).
            // 选填,返回结果起始位置,默认1。
            SetPageNumber(1).
            // 选填,返回结果数量,默认20。
            SetPageSize(1)
            // 调用api。
        resp, err := client.DumpMetaList(request)
        if err != nil {
            fmt.Println(err.Error())
        }
        fmt.Println(resp.Body)
    }

  • 结果示例

    {
      RequestId=850DFBD9-A179-12FB-B193-2D08ACEA586B,
      Data={
        TotalCount=1,
        PageSize=1,
        PageNumber=1,
        DumpMetaList=[
          {
            Status=SUCCESS,
            Msg=success,
            MetaUrl=https: //****.com/x?Expires=x,
            UtcCreate=1639969113000,
            UtcModified=1639969140000,
            Id=567,
            Code=0
          }
        ]
      }
    }

BatchTask接口

  • 代码示例

    package main
    
    import (
        "fmt"
        "os"
        rpc "github.com/alibabacloud-go/darabonba-openapi/v2/client"
        imagesearch "github.com/alibabacloud-go/imagesearch-20201214/v4/client"
        util "github.com/alibabacloud-go/tea-utils/v2/service"
    )
    
    func main() {
        // 初始化 config
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")).
            SetAccessKeySecret(os.Getenv("CC_SK_ENV")).
            SetType("access_key").
            // 请更换成您购买实例的区域,例如购买的是杭州区域,则为"imagesearch.cn-hangzhou.aliyuncs.com"
            SetEndpoint("imagesearch.cn-shanghai.aliyuncs.com").
    
            // 以下为内网(VPC)访问方式
            // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // SetEndpointType("internal").  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
            // SetEndpoint("imagesearch-vpc.cn-shanghai.aliyuncs.com"). // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
            // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为"cn-hangzhou"
            SetRegionId("cn-shanghai")
            // 创建客户端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.IncreaseInstanceRequest).
            // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
            SetInstanceName("XXXXXXXX").
            // 必填,oss 中 bucket名称。
            SetBucketName("bucketName").
            // 必填,路径,必须 / 开头, 非 / 结尾。
            // 此路径下需要提前准备好 increment.meta 文件,可参考,用户指南下的批量操作文档。
            SetPath("/public/xxx").
            // 选填,请求成功回调地址,http(s)://。
            SetCallbackAddress("http://xxx/xxx")
            // 调用 api。
        resp, err := client.IncreaseInstance(request)
        if err != nil {
            fmt.Println(err.Error())
        }
        fmt.Println(resp.Body)
    }

  • 结果示例

    {
      RequestId=F9BAD635-3031-1EBB-BE9E-E9FCB318A28C,
      Data={
        IncrementStatus=PROCESSING,
        Id=1470
      },
      Success=true
    }

BatchTaskList接口

  • 代码示例

    package main
    
    import (
        "fmt"
        "os"
        rpc "github.com/alibabacloud-go/darabonba-openapi/v2/client"
        imagesearch "github.com/alibabacloud-go/imagesearch-20201214/v4/client"
        util "github.com/alibabacloud-go/tea-utils/v2/service"
    )
    
    func main() {
        // 初始化 config
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        // 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        // 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        // 本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")).
            SetAccessKeySecret(os.Getenv("CC_SK_ENV")).
            SetType("access_key").
            // 请更换成您购买实例的区域,例如购买的是杭州区域,则为"imagesearch.cn-hangzhou.aliyuncs.com"
            SetEndpoint("imagesearch.cn-shanghai.aliyuncs.com").
    
            // 以下为内网(VPC)访问方式
            // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // SetEndpointType("internal").  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
            // SetEndpoint("imagesearch-vpc.cn-shanghai.aliyuncs.com"). // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
            // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为"cn-hangzhou"
            SetRegionId("cn-shanghai")
            // 创建客户端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.IncreaseListRequest).
            // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过 上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
            SetInstanceName("XXXXXXXX").
            // 选填,批量任务id。
            SetId(1470).
            // 选填,查询oss 的 BucketName。
            SetBucketName("bucketName").
            // 选填,查询oss 的 path 路径。
            SetPath("xx").
            // 选填,返回结果起始位置,默认1。
            SetPageNumber(1).
            // 选填,返回结果数量,默认20。
            SetPageSize(1)
            // 调用 api。
        resp, err := client.DumpMetaList(request)
        if err != nil {
            fmt.Println(err.Error())
        }
        fmt.Println(resp.Body)
    }

  • 结果示例

    {
       "Data": {
          "Increments": {
             "Instance": [
                {
                   "BucketName": "xxxx",
                   "Code": "0",
                   "ErrorUrl": "https://xxTqoxxres=16706x\u0xM%3D",
                   "Id": 1470,
                   "Msg": "success",
                   "Path": "/x/x",
                   "Status": "NORMAL",
                   "UtcCreate": "1639107872000",
                   "UtcModified": 1639125540000
                }
             ]
          },
          "PageNumber": 1,
          "PageSize": 1,
          "TotalCount": 1
       },
       "RequestId": "75D08E30-0161-158F-806A-A6C4C2CE04FC"
    }