このトピックでは、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
- (推奨) Glide を使用する場合。
サンプルコード
以下の完全なサンプルコードが用意されています。
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)
}