全部产品
云市场

Go SDK

更新时间:2020-04-03 16:52:30

接口列表

接口名称 接口说明
Add 增加图片
SearchImageByPic 使用图片进行搜索
SearchImageByName 指定名称,使用已入库的图片进行搜索
Delete 删除图片

准备工作

依赖安装

使用Govendor安装。执行以下命令,安装阿里云Go SDK:

  1. go get github.com/aliyun/alibabacloud-sdk/imagesearch-20200212/golang@master

代码示例

Add接口

代码示例
  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. util "github.com/aliyun/tea-util/golang/service"
  6. imagesearch "github.com/aliyun/alibabacloud-sdk/imagesearch-20200212/golang/client"
  7. )
  8. func main() {
  9. // 初始化 config
  10. var config = new(imagesearch.Config).SetAccessKeyId("XXXXXXX").
  11. SetAccessKeySecret("XXXXXXXXXXX").
  12. SetType("access_key").
  13. SetEndpoint("imagesearch.cn-shanghai.aliyuncs.com").
  14. SetRegionId("cn-shanghai")
  15. // 创建客户端
  16. client, err := imagesearch.NewClient(config)
  17. if err != nil {
  18. panic(err)
  19. }
  20. // 初始化 runtimeObject
  21. var runtimeObject = new(util.RuntimeOptions)
  22. b, err := os.Open("D:/123.jpg")
  23. if err != nil {
  24. panic(err)
  25. }
  26. request := new(imagesearch.AddImageAdvanceRequest).
  27. // 必填,图像搜索实例名称。
  28. SetInstanceName("XXXXXXXX").
  29. // 必填,图片名称,最多支持 512个字符。
  30. // 1. ProductId + PicName唯一确定一张图片。
  31. // 2. 如果多次添加图片具有相同的ProductId + PicName,以最后一次添加为准,前面添加的的图片将被覆盖。
  32. SetPicName("test").
  33. // 必填,商品id,最多支持 512个字符。
  34. // 一个商品可有多张图片。
  35. SetProductId("test").
  36. // 图片内容,最多支持 2MB大小图片以及5s的传输等待时间。当前仅支持jpg和png格式图片;
  37. // 对于商品、商标、通用图片搜索,图片长和宽的像素必须都大于等于200,并且小于等于1024;
  38. // 对于布料搜索,图片长和宽的像素必须都大于等于448,并且小于等于1024;
  39. // 图像中不能带有旋转信息
  40. SetPicContentObject(b).
  41. // 选填,图片类目。
  42. // 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取 。
  43. // 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
  44. SetCategoryId(2).
  45. // 选填,是否需要进行主体识别,默认为true。
  46. // 1.为true时,由系统进行主体识别,以识别的主体进行搜索,主体识别结果可在Response中获取。
  47. // 2. 为false时,则不进行主体识别,以整张图进行搜索。
  48. // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
  49. SetCrop(true).
  50. // 选填,图片的主体区域,格式为 x1,x2,y1,y2, 其中 x1,y1 是左上角的点,x2,y2是右下角的点。
  51. // 若用户设置了Region,则不论Crop参数为何值,都将以用户输入Region进行搜索。
  52. // 对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
  53. SetRegion("167,477,220,407").
  54. // 选填,用户自定义的内容,最多支持 4096个字符。
  55. // 查询时会返回该字段。例如可添加图片的描述等文本。
  56. SetCustomContent("this is a simple test!").
  57. // 选填,整数类型属性,可用于查询时过滤,查询时会返回该字段。
  58. // 例如不同的站点的图片/不同用户的图片,可以设置不同的IntAttr,查询时通过过滤来达到隔离的目的
  59. SetIntAttr(100).
  60. // 选填,字符串类型属性,最多支持 128个字符。可用于查询时过滤,查询时会返回该字段。
  61. SetStrAttr("1")
  62. // 调用 api
  63. resp, err := client.AddImageAdvance(request, runtimeObject)
  64. if err != nil {
  65. fmt.Println(err.Error())
  66. }
  67. fmt.Println(resp)
  68. }
返回结果示例
  1. {
  2. "RequestId": "B48CC953-F495-496C-BC96-B96826A860F1",
  3. "Success": true,
  4. "Message": "success",
  5. "Code": 0,
  6. "PicInfo": {
  7. "CategoryId": 2,
  8. "Region": "167,477,220,407"
  9. }
  10. }

SearchImageByPic接口

代码示例
  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. util "github.com/aliyun/tea-util/golang/service"
  6. imagesearch "github.com/aliyun/alibabacloud-sdk/imagesearch-20200212/golang/client"
  7. )
  8. func main() {
  9. // 初始化 config
  10. var config = new(imagesearch.Config).SetAccessKeyId("xxxxxxxxxx").
  11. SetAccessKeySecret("xxxxxxxxxxxx").
  12. SetType("access_key").
  13. SetEndpoint("imagesearch.cn-shanghai.aliyuncs.com").
  14. SetRegionId("cn-shanghai")
  15. // 创建客户端
  16. client, err := imagesearch.NewClient(config)
  17. if err != nil {
  18. panic(err)
  19. }
  20. // 初始化 runtimeObject
  21. var runtimeObject = new(util.RuntimeOptions)
  22. b, err := os.Open("D:/123.jpg")
  23. if err != nil {
  24. panic(err)
  25. }
  26. request := new(imagesearch.SearchImageByPicAdvanceRequest).
  27. // 必填,图像搜索实例名称。
  28. SetInstanceName("xxxxxxxxxx").
  29. // 图片内容,最多支持 2MB大小图片以及5s的传输等待时间。当前仅支持jpg和png格式图片;
  30. // 对于商品、商标、通用图片搜索,图片长和宽的像素必须都大于等于200,并且小于等于1024;
  31. // 对于布料搜索,图片长和宽的像素必须都大于等于448,并且小于等于1024;
  32. // 图像中不能带有旋转信息
  33. SetPicContentObject(b).
  34. // 选填,商品类目。
  35. // 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取 。
  36. // 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
  37. SetCategoryId(2).
  38. // 选填,返回结果的数目。取值范围:1-100。默认值:10。
  39. SetNum(10).
  40. // 选填,返回结果的起始位置。取值范围:0-499。默认值:0
  41. SetStart(0).
  42. // 选填,过滤条件
  43. // int_attr支持的操作符有>、>=、<、<=、=,str_attr支持的操作符有=和!=,多个条件之支持AND和OR进行连接。
  44. // 示例:
  45. // 1. 根据IntAttr过滤结果,int_attr>=100
  46. // 2. 根据StrAttr过滤结果,str_attr!="value1"
  47. // 3. 根据IntAttr和StrAttr联合过滤结果,int_attr=1000 AND str_attr="value1"
  48. SetFilter("int_attr=101 OR str_attr=\"2\"").
  49. // 选填,是否需要进行主体识别,默认为true。
  50. // 1.为true时,由系统进行主体识别,以识别的主体进行搜索,主体识别结果可在Response中获取。
  51. // 2. 为false时,则不进行主体识别,以整张图进行搜索。
  52. // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
  53. SetCrop(true).
  54. // 选填,图片的主体区域,格式为 x1,x2,y1,y2, 其中 x1,y1 是左上角的点,x2,y2是右下角的点。
  55. // 若用户设置了Region,则不论Crop参数为何值,都将以用户输入Region进行搜索。
  56. // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
  57. SetRegion("167,476,220,407")
  58. // 调用 api
  59. resp, err := client.SearchImageByPicAdvance(request, runtimeObject)
  60. if err != nil {
  61. fmt.Println(err.Error())
  62. }
  63. fmt.Println(resp)
  64. }
返回结果示例
  1. {
  2. "RequestId": "F468F52E-963A-452B-88E7-1C43F92C9D81",
  3. "Success": true,
  4. "Code": 0,
  5. "Msg": "success",
  6. "Auctions": [
  7. {
  8. "CategoryId": 2,
  9. "ProductId": "php",
  10. "PicName": "test",
  11. "CustomContent": "this is a simple test!",
  12. "SortExprValues": "292.509948730469;16",
  13. "IntAttr": 100,
  14. "StrAttr": "1"
  15. }
  16. ],
  17. "Head": {
  18. "DocsReturn": 1,
  19. "DocsFound": 1,
  20. "SearchTime": 121
  21. },
  22. "PicInfo": {
  23. "CategoryId": 2,
  24. "Region": "167,476,220,407",
  25. "AllCategories": [
  26. {
  27. "Id": 0,
  28. "Name": "Tops"
  29. },
  30. .......
  31. {
  32. "Id": 88888888,
  33. "Name": "Other"
  34. }
  35. ]
  36. }
  37. }

SearchImageByName接口

代码示例
  1. package main
  2. import (
  3. "fmt"
  4. util "github.com/aliyun/tea-util/golang/service"
  5. imagesearch "github.com/aliyun/alibabacloud-sdk/imagesearch-20200212/golang/client"
  6. )
  7. func main() {
  8. // 初始化 config
  9. var config = new(imagesearch.Config).SetAccessKeyId("xxxxx").
  10. SetAccessKeySecret("XXXXXXXXXXXXXXX").
  11. SetType("access_key").
  12. SetEndpoint("imagesearch.cn-shanghai.aliyuncs.com").
  13. SetRegionId("cn-shanghai")
  14. // 创建客户端
  15. client, err := imagesearch.NewClient(config)
  16. if err != nil {
  17. panic(err)
  18. }
  19. // 初始化 runtimeObject
  20. var runtimeObject = new(util.RuntimeOptions)
  21. request := new(imagesearch.SearchImageByNameRequest).
  22. // 必填,图像搜索实例名称。
  23. SetInstanceName("XXXXXXXXXXX").
  24. // 必填,图片名称,最多支持 512个字符。
  25. // 1. ProductId + PicName唯一确定一张图片。
  26. SetPicName("test").
  27. // 必填,商品id,最多支持 512个字符。
  28. // 一个商品可有多张图片。
  29. SetProductId("php").
  30. // 选填,商品类目。
  31. // 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取 。
  32. // 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
  33. SetCategoryId(2).
  34. // 选填,返回结果的数目。取值范围:1-100。默认值:10。
  35. SetNum(10).
  36. // 选填,返回结果的起始位置。取值范围:0-499。默认值:0。
  37. SetStart(0).
  38. // 选填,过滤条件
  39. // int_attr支持的操作符有>、>=、<、<=、=,str_attr支持的操作符有=和!=,多个条件之支持AND和OR进行连接。
  40. // 示例:
  41. // 1. 根据IntAttr过滤结果,int_attr>=100
  42. // 2. 根据StrAttr过滤结果,str_attr!="value1"
  43. // 3. 根据IntAttr和StrAttr联合过滤结果,int_attr=1000 AND str_attr="value1"
  44. SetFilter("str_attr=\"1\"") //设置字符串过滤条件
  45. // 调用 api
  46. resp, err := client.SearchImageByName(request, runtimeObject)
  47. if err != nil {
  48. fmt.Println(err.Error())
  49. }
  50. fmt.Println(resp)
  51. }
返回结果示例
  1. {
  2. "RequestId": "9011A4A3-7642-44C5-AA33-6E38BA2EA3F1",
  3. "Success": true,
  4. "Code": 0,
  5. "Msg": "success",
  6. "Auctions": [
  7. {
  8. "CategoryId": 2,
  9. "ProductId": "php",
  10. "PicName": "test",
  11. "CustomContent": "this is a simple test!",
  12. "SortExprValues": "7.33136443711219e+24;0",
  13. "IntAttr": 100,
  14. "StrAttr": "1"
  15. }
  16. ],
  17. "Head": {
  18. "DocsReturn": 1,
  19. "DocsFound": 1,
  20. "SearchTime": 12
  21. },
  22. "PicInfo": {
  23. "CategoryId": 2,
  24. "Region": null,
  25. "AllCategories": [
  26. {
  27. "Id": 0,
  28. "Name": "Tops"
  29. },
  30. .......
  31. {
  32. "Id": 88888888,
  33. "Name": "Other"
  34. }
  35. ]
  36. }
  37. }

Delete接口

代码示例
  1. package main
  2. import (
  3. "fmt"
  4. util "github.com/aliyun/tea-util/golang/service"
  5. imagesearch "github.com/aliyun/alibabacloud-sdk/imagesearch-20200212/golang/client"
  6. )
  7. func main() {
  8. // 初始化 config
  9. var config = new(imagesearch.Config).SetAccessKeyId("XXXXXXXX").
  10. SetAccessKeySecret("XXXXXXXX").
  11. SetType("access_key").
  12. SetEndpoint("imagesearch.cn-shanghai.aliyuncs.com").
  13. SetRegionId("cn-shanghai")
  14. // 创建客户端
  15. client, err := imagesearch.NewClient(config)
  16. if err != nil {
  17. panic(err)
  18. }
  19. // 初始化 runtimeObject
  20. var runtimeObject = new(util.RuntimeOptions)
  21. request := new(imagesearch.DeleteImageRequest).
  22. // 必填,图像搜索实例名称。
  23. SetInstanceName("XXXXXXXX").
  24. // 必填,图片名称,最多支持 512个字符。
  25. // 1. ProductId + PicName唯一确定一张图片。
  26. SetPicName("test").
  27. // 选填,图片名称。若不指定本参数,则删除ProductId下所有图片;若指定本参数,则删除ProductId+PicName指定的图片。
  28. SetProductId("php")
  29. // 调用 api
  30. resp, err := client.DeleteImage(request, runtimeObject)
  31. if err != nil {
  32. fmt.Println(err.Error())
  33. }
  34. fmt.Println(resp)
  35. }
返回结果示例
  1. {
  2. "RequestId": "C9432066-8918-447F-858B-B4B11E2A6941",
  3. "Success": true,
  4. "Message": "success",
  5. "Code": 0
  6. }