このトピックでは、Alibaba Cloud Image Search SDK for Go の使用方法について説明します。

準備

  • Alibaba Cloud SDK をインストールして使用する前に、Alibaba Cloud アカウントが作成され、AccessKey ペアを取得済みであることを確認してください。 詳細については、「AccessKey ペアの作成」をご参照ください。
  • Alibaba Cloud SDK for Go のインストール Alibaba Cloud SDK for Go は Go 1.7 以降をサポートしています。 Alibaba Cloud Image Search SDK for Go は、以下の方法でインストールできます。
    • (推奨) Glide を使用する場合。
      以下のコマンドを実行して Alibaba Cloud SDK for Go をインストールします。
      glide get github.com/aliyun/alibaba-cloud-sdk-go
    • govendor を使用する場合。
      以下のコマンドを実行して Alibaba Cloud SDK for Go をインストールします。
      go get -u github.com/aliyun/alibaba-cloud-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")
    // Create a client instance.
    client, err := imagesearch.NewClientWithAccessKey(
        "<region>",         // The region ID.
        "<your-access-key-id>",         // Your AccessKey ID.
        "<your-access-key-secret>");    // Your AccessKey secret.
    if err ! = nil {
        // Handle exceptions.
        panic(err)
    }
    // Delete the image.
    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)
    // Add the image.
    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)
    // Search for images.
    searchRequest := imagesearch.CreateSearchImageRequest()
    searchRequest.InstanceName = "demo"
    searchRequest.PicName = "test"
    searchRequest.ProductId = "test"
    searchRequest.Type = "SearchByName"
    searchResponse, err := client.SearchImage(searchRequest)
    if err ! = nil {
        // Handle exceptions.
        panic(err)
    }
    fmt.Println(searchResponse)
}