全部產品
Search
文件中心

Image Search:Go SDK

更新時間:Jan 20, 2026

本文介紹Image Search服務Go SDK的使用方法及樣本。

介面列表

介面名稱

介面說明

Add

增加圖片。

SearchImageByPic

使用圖片進行搜尋

SearchImageByName

指定名稱,使用已入庫的圖片進行搜尋。

Delete

刪除圖片。

UpdateImage

修改圖片。

Detail

查詢執行個體資訊。

DumpMeta

元資訊匯出任務。

DumpMetaList

元資訊匯出工作清單。

BatchTask

批量任務。

BatchTaskList

批量工作清單。

CompareSimilarByImage

比較兩個圖片的相似性。

準備工作

  • 在安裝和使用阿里雲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/client"
        imagesearch "github.com/alibabacloud-go/imagesearch-20201214/v4/client"
        util "github.com/alibabacloud-go/tea-utils/service"
    )
    
    func main() {
        // 初始化 config
        // 建立AK/SK參考:https://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
        // 阿里雲帳號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.ap-southeast-1.aliyuncs.com"
            SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com").
    
            // 以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是新加坡,那麼您的ECS或資源也必須在新加坡才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // SetEndpointType("internal").  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"). // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為新加坡,則為"imagesearch-vpc.ap-southeast-1.aliyuncs.com"
            
            // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為新加坡,則更換為"ap-southeast-1"
            SetRegionId("ap-southeast-1")
            // 建立用戶端
        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).
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過上雲層管控台執行個體資訊一欄查看:https://imagesearch.console.alibabacloud.com/overview
            SetInstanceName("XXXXXXXX").
            // 必填,圖片名稱,最多支援 256個字元。
            // 1. ProductId + PicName唯一確定一張圖片。
            // 2. 如果多次添加圖片具有相同的ProductId + PicName,以最後一次添加為準,前面添加的圖片將被覆蓋。
            SetPicName("test").
            // 必填,商品id,最多支援 256個字元。
            // 一個商品可有多張圖片。
            SetProductId("test").
            // 圖片內容,最多支援 4MB大小圖片以及5s的傳輸等待時間。當前僅支援PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、PPM格式圖片;
            // 對於商品、通用圖片搜尋,圖片長和寬的像素必須都大於等於100且小於等於4096;
            // 對於布料搜尋,圖片長和寬的像素必須都大於等於448且小於等於4096;
            // 映像中不能帶有旋轉資訊
            SetPicContentObject(b).
            // 選填,圖片類目。
            // 1. 對於商品搜尋:若設定類目,則以設定的為準;若不設定類目,將由系統進行類目預測,預測的類目結果可在Response中擷取 。
            // 2. 對於布料、商標、通用搜尋:不論是否設定類目,系統會將類目設定為88888888。
            SetCategoryId(2).
            // 選填,是否需要進行主體識別,預設為true。
            // 1.為true時,由系統進行主體識別,以識別的主體進行搜尋,主體識別結果可在Response中擷取。
            // 2. 為false時,則不進行主體識別,以整張圖進行搜尋。
            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://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
        // 阿里雲帳號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.ap-southeast-1.aliyuncs.com"
            SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com").
    
            // 以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是新加坡,那麼您的ECS或資源也必須在新加坡才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // SetEndpointType("internal").  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"). // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為新加坡,則為"imagesearch-vpc.ap-southeast-1.aliyuncs.com"
            
            // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為新加坡,則更換為"ap-southeast-1"
            SetRegionId("ap-southeast-1")
            // 建立用戶端
        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).
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過上雲層管控台執行個體資訊一欄查看:https://imagesearch.console.alibabacloud.com/overview
            SetInstanceName("xxxxxxxxxx").
            // 圖片內容,最多支援 4MB大小圖片以及5s的傳輸等待時間。當前僅支援PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、PPM格式圖片;
            // 對於商品、通用圖片搜尋,圖片長和寬的像素必須都大於等於100且小於等於4096;
            // 映像中不能帶有旋轉資訊
            SetPicContentObject(b).
            // 選填,商品類目。
            // 1. 對於商品搜尋:若設定類目,則以設定的為準;若不設定類目,將由系統進行類目預測,預測的類目結果可在Response中擷取 。
            // 2. 對於布料、商標、通用搜尋:不論是否設定類目,系統會將類目設定為88888888。
            SetCategoryId(2).
            // 選填,返回結果的數目。取值範圍:1-100。預設值:10。
            SetNum(10).
            // 選填,返回結果的起始位置。取值範圍:0-499。預設值:0
            SetStart(0).
            // 選填,過濾條件
            // int_attr支援的操作符有in、not in、>、>=、<、<=、=,str_attr支援的操作符有in、not in、=、!=,多個條件之支援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\"").
            // 選填,相似性閾值。
            // 若使用者佈建會將結果得分篩選大於閾值的資料
            SetScoreThreshold=("0.54").
            // 選填,是否需要進行主體識別,預設為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").
            //選填,若為true則響應資料根據ProductId進行返回。
            SetDistinctProductId(true)
            // 調用 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://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
        // 阿里雲帳號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.ap-southeast-1.aliyuncs.com"
            SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com").
    
            // 以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是新加坡,那麼您的ECS或資源也必須在新加坡才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // SetEndpointType("internal").  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"). // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為新加坡,則為"imagesearch-vpc.ap-southeast-1.aliyuncs.com"
            
            // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為新加坡,則更換為"ap-southeast-1"
            SetRegionId("ap-southeast-1")
            // 建立用戶端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.SearchImageByNameRequest).
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過上雲層管控台執行個體資訊一欄查看:https://imagesearch.console.alibabacloud.com/overview
            SetInstanceName("XXXXXXXXXXX").
            // 必填,圖片名稱,最多支援 256個字元。
            // 1. ProductId + PicName唯一確定一張圖片。
            SetPicName("test").
            // 必填,商品id,最多支援 256個字元。
            // 一個商品可有多張圖片。
            SetProductId("php").
            // 選填,商品類目。
            // 1. 對於商品搜尋:若設定類目,則以設定的為準;若不設定類目,將由系統進行類目預測,預測的類目結果可在Response中擷取 。
            // 2. 對於通用搜尋:不論是否設定類目,系統會將類目設定為88888888。
            SetCategoryId(2).
            // 選填,返回結果的數目。取值範圍:1-100。預設值:10。
            SetNum(10).
            // 選填,返回結果的起始位置。取值範圍:0-499。預設值:0。
            SetStart(0).
            // 選填,過濾條件
            // int_attr支援的操作符有in、not in、>、>=、<、<=、=,str_attr支援的操作符有in、not in、=、!=,多個條件之支援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\"").
            // 選填,相似性閾值。
            // 若使用者佈建會將結果得分篩選大於閾值的資料
            SetScoreThreshold=("0.54").
            // 調用 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://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
        // 阿里雲帳號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.ap-southeast-1.aliyuncs.com"
            SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com").
    
            // 以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是新加坡,那麼您的ECS或資源也必須在新加坡才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // SetEndpointType("internal").  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"). // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為新加坡,則為"imagesearch-vpc.ap-southeast-1.aliyuncs.com"
            
            // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為新加坡,則更換為"ap-southeast-1"
            SetRegionId("ap-southeast-1")
            // 建立用戶端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.DeleteImageRequest).
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過上雲層管控台執行個體資訊一欄查看:https://imagesearch.console.alibabacloud.com/overview
            SetInstanceName("XXXXXXXX").
            // 必填,圖片名稱,最多支援 256個字元。
            // 1. ProductId + PicName唯一確定一張圖片。
            SetPicName("test").
            //  選填,圖片名稱。若不指定本參數,則刪除ProductId下所有圖片;若指定本參數,則刪除ProductId+PicName指定的圖片。
            SetProductId("php").
            //選填,若為true則根據filter進行刪除。
            SetIsDeleteByFilter(false).
            SetFilter("intattr3=xxx")
            // 調用 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://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
        // 阿里雲帳號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.ap-southeast-1.aliyuncs.com"
            SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com").
    
            // 以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是新加坡,那麼您的ECS或資源也必須在新加坡才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // SetEndpointType("internal").  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"). // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為新加坡,則為"imagesearch-vpc.ap-southeast-1.aliyuncs.com"
            
            // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為新加坡,則更換為"ap-southeast-1"
            SetRegionId("ap-southeast-1")
            // 建立用戶端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.UpdateImageRequest).
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過上雲層管控台執行個體資訊一欄查看:https://imagesearch.console.alibabacloud.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://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
        // 阿里雲帳號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.ap-southeast-1.aliyuncs.com"
            SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com").
    
            // 以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是新加坡,那麼您的ECS或資源也必須在新加坡才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // SetEndpointType("internal").  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"). // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為新加坡,則為"imagesearch-vpc.ap-southeast-1.aliyuncs.com"
            
            // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為新加坡,則更換為"ap-southeast-1"
            SetRegionId("ap-southeast-1")
            // 建立用戶端。
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.DetailRequest).
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過上雲層管控台執行個體資訊一欄查看:https://imagesearch.console.alibabacloud.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://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
        // 阿里雲帳號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.ap-southeast-1.aliyuncs.com"
            SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com").
    
            // 以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是新加坡,那麼您的ECS或資源也必須在新加坡才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // SetEndpointType("internal").  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"). // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為新加坡,則為"imagesearch-vpc.ap-southeast-1.aliyuncs.com"
            
            // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為新加坡,則更換為"ap-southeast-1"
            SetRegionId("ap-southeast-1")
            // 建立用戶端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.DumpMetaRequest).
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過上雲層管控台執行個體資訊一欄查看:https://imagesearch.console.alibabacloud.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://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
        // 阿里雲帳號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.ap-southeast-1.aliyuncs.com"
            SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com").
    
            // 以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是新加坡,那麼您的ECS或資源也必須在新加坡才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // SetEndpointType("internal").  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"). // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為新加坡,則為"imagesearch-vpc.ap-southeast-1.aliyuncs.com"
            
            // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為新加坡,則更換為"ap-southeast-1"
            SetRegionId("ap-southeast-1")
            // 建立用戶端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.DumpMetaListRequest).
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過上雲層管控台執行個體資訊一欄查看:https://imagesearch.console.alibabacloud.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://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
        // 阿里雲帳號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.ap-southeast-1.aliyuncs.com"
            SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com").
    
            // 以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是新加坡,那麼您的ECS或資源也必須在新加坡才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // SetEndpointType("internal").  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"). // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為新加坡,則為"imagesearch-vpc.ap-southeast-1.aliyuncs.com"
            
            // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為新加坡,則更換為"ap-southeast-1"
            SetRegionId("ap-southeast-1")
            // 建立用戶端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.IncreaseInstanceRequest).
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過上雲層管控台執行個體資訊一欄查看:https://imagesearch.console.alibabacloud.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://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
        // 阿里雲帳號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.ap-southeast-1.aliyuncs.com"
            SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com").
    
            // 以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是新加坡,那麼您的ECS或資源也必須在新加坡才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // SetEndpointType("internal").  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"). // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為新加坡,則為"imagesearch-vpc.ap-southeast-1.aliyuncs.com"
            
            // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為新加坡,則更換為"ap-southeast-1"
            SetRegionId("ap-southeast-1")
            // 建立用戶端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.IncreaseList).
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過 上雲層管控台執行個體資訊一欄查看:https://imagesearch.console.alibabacloud.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.IncreaseList(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"
    }
                        

CompareSimilarByImage介面

  • 程式碼範例

    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參考:建立AccessKey:https://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
        // 阿里雲帳號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.ap-southeast-1.aliyuncs.com"
            SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com").
    
            // 以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是新加坡,那麼您的ECS或資源也必須在新加坡才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // SetEndpointType("internal").  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"). // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為新加坡,則為"imagesearch-vpc.ap-southeast-1.aliyuncs.com"
            
            // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為新加坡,則更換為"ap-southeast-1"
            SetRegionId("ap-southeast-1")
            // 建立用戶端
        client, err := imagesearch.NewClient(config)
        if err != nil {
            panic(err)
        }
        // 初始化 runtimeObject
        var runtimeObject = new(util.RuntimeOptions)
        a, err := os.Open("D:/123.jpg")
        b, err := os.Open("D:/123.jpg")
        if err != nil {
            panic(err)
        }
        request := new(imagesearch.CompareSimilarByImageAdvanceRequest).
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過上雲層管控台執行個體資訊一欄查看:https://imagesearch.console.alibabacloud.com/overview
            SetInstanceName("XXXXXXXX").
            // 圖片內容,最多支援 4MB大小圖片以及5s的傳輸等待時間。當前僅支援PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、PPM格式圖片;
            // 對於商品、商標、通用圖片搜尋,圖片長和寬的像素必須都大於等於100且小於等於4096;
            // 對於布料搜尋,圖片長和寬的像素必須都大於等於448且小於等於4096;
            // 映像中不能帶有旋轉資訊圖片內容,最多支援 2MB大小圖片以及5s的傳輸等待時間。當前僅支援jpg和png格式圖片;
            SetPrimaryPicContentObject(a).
            SetSecondaryPicContentObject(B)
    
        resp, err := client.compareSimilarByImageAdvance(request, runtimeObject)
        if err != nil {
            fmt.Println(err.Error())
        }
        fmt.Println(resp)
    }
  • 結果樣本

    {
       "RequestId": "B48CC953-F495-496C-BC96-B96826A860F1",
       "Success": true,
       "Message": "success",
       "Code": 0,
       "Score": 1.0
    }