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

準備工作

  • 在安裝和使用阿里雲SDK前,確保您已經註冊阿里雲帳號並產生存取金鑰(AccessKey)。詳情請參見t1938336.html#task968
  • 安裝Go SDK。阿里雲Go SDK支援Go 1.7及以上版本,您可以通過以下方式安裝Go SDK。
    • 使用Glide安裝GO SDK(推薦)。
      執行以下命令,安裝阿里雲Go SDK:
      glide get github.com/aliyun/alibaba-cloud-sdk-go
    • 使用Govendor安裝。
      執行以下命令,安裝阿里雲Go SDK:
      go get -u github.com/aliyun/alibaba-cloud-sdk-go/sdk

完整程式碼範例

Go SDK的完整程式碼範例如下。

package main
import (
    "encoding/base64"
    "fmt"
    "github.com/aliyun/alibaba-cloud-sdk-go/sdk/endpoints"
    "github.com/aliyun/alibaba-cloud-sdk-go/services/imagesearch"
    "io/ioutil"
)
func main() {
    endpoints.AddEndpointMapping("<region>", "ImageSearch", "imagesearch.<region>.aliyuncs.com")
    // 建立client執行個體
    client, err := imagesearch.NewClientWithAccessKey(
        "<region>",           // 您的可用性區域ID
        "<your-access-key-id>",         // 您的Access Key ID
        "<your-access-key-secret>")     // 您的Access Key Secret
    if err != nil {
        // 異常處理
        panic(err)
    }
    // 刪除圖片
    deleteRequest := imagesearch.CreateDeleteImageRequest()
    deleteRequest.InstanceName = "demo"
    deleteRequest.PicName = "test"
    deleteRequest.ProductId = "test"
    deleteResponse, err := client.DeleteImage(deleteRequest)
    if err != nil {
        panic(err)
    }
    fmt.Println(deleteResponse)
    // 添加圖片
    addRequest := imagesearch.CreateAddImageRequest()
    addRequest.InstanceName = "demo"
    addRequest.PicName = "test"
    addRequest.ProductId = "test"
    b, err := ioutil.ReadFile("/home/admin/demo.jpg")
    if err != nil {
        panic(err)
    }
    messageBody := base64.StdEncoding.EncodeToString(b)
    addRequest.PicContent = messageBody
    addResponse, err := client.AddImage(addRequest)
    if err != nil {
         panic(err)
    }
    fmt.Println(addResponse)
    // 查詢圖片
    searchRequest := imagesearch.CreateSearchImageRequest()
    searchRequest.InstanceName = "demo"
    searchRequest.PicName = "test"
    searchRequest.ProductId = "test"
    searchRequest.Type = "SearchByName"
    searchResponse, err := client.SearchImage(searchRequest)
    if err != nil {
        // 異常處理
        panic(err)
    }
    fmt.Println(searchResponse)
}