この Topic では、Image Search の Go SDK の使用方法について説明し、サンプルコードを提供します。
メソッド
方法 | 説明 |
Add | 1つ以上のイメージを追加します。 |
SearchImageByPic | 新しいイメージに基づいて類似のイメージを検索します。 |
SearchImageByName | イメージギャラリー内の既存のイメージの名前に基づいて類似のイメージを検索します。 |
Delete | 1つ以上のイメージを削除します。 |
UpdateImage | イメージを更新します。 |
Detail | インスタンスに関する情報を照会します。 |
DumpMeta | メタデータをエクスポートするタスクを作成します。 |
DumpMetaList | メタデータをエクスポートするために使用されるタスクを照会します。 |
BatchTask | バッチタスクを作成します。 |
BatchTaskList | バッチ操作を実行するために使用されるタスクを照会します。 |
CompareSimilarByImage | 2つのイメージ間の類似性を比較します。 |
事前準備
Alibaba Cloud SDK をインストールして使用する前に、Alibaba Cloud アカウントを作成し、そのアカウントの AccessKey ペアを取得していることを確認してください。詳細については、「AccessKey ペアの作成」をご参照ください。
go を使用して次のコマンドを実行し、Image Search の Go SDK をインストールします。
go get github.com/alibabacloud-go/imagesearch-20201214/v4Add
サンプルコード
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 を初期化します。 // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/ja/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user をご参照ください。 // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作を呼び出す権限を持っています。API 操作の呼び出しや日常の O&M には、RAM ユーザーの AccessKey ペアを使用することを推奨します。 // AccessKey ID と AccessKey Secret をプロジェクトコードにハードコーディングしないことを推奨します。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。 // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されます。ビジネス要件に応じて、設定ファイルに AccessKey ペアを保存することもできます。 var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")). SetAccessKeySecret(os.Getenv("CC_SK_ENV")). SetType("access_key"). // 値を Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com"). // 次のサンプルコードは、Virtual Private Cloud (VPC) エンドポイントを使用して Image Search API を呼び出す方法の例を示しています。 // 注意:VPC エンドポイントを使用して Image Search API を呼び出せるのは、同じリージョンに存在する Elastic Compute Service (ECS) インスタンスまたはリソースからのみです。例えば、Image Search インスタンスがシンガポールにある場合、VPC エンドポイントを使用して Image Search API を呼び出せるのは、シンガポールに存在する ECS インスタンスまたはリソースからのみです。そうでない場合、API 操作の呼び出しは失敗します。API 呼び出しが失敗した場合は、Image Search API を呼び出す前に、ご利用の ECS インスタンスまたはリソースが Image Search インスタンスと同じリージョンにあるか確認してください。 // SetEndpointType("internal"). // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API を呼び出すために使用される VPC エンドポイント。値を Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 // 値を Image Search インスタンスが存在するリージョンの ID に置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、regionId パラメーターを 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 ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページ (https://imagesearch.console.alibabacloud.com/overview) でインスタンス名を確認できます。 SetInstanceName("XXXXXXXX"). // 必須。イメージ名。名前の長さは最大 256 文字です。 // イメージは ProductId と PicName パラメーターの値によって一意に識別されます。 // 2. プロダクト ID (ProductId) とイメージ名 (PicName) が既存のイメージと同じイメージを追加すると、新しく追加されたイメージが既存のイメージを上書きします。 SetPicName("test"). // 必須。プロダクトの ID。ID の長さは 256 文字を超えることはできません。 // 1 つのプロダクト ID は複数のイメージ名に対応できます。 SetProductId("test"). // イメージ。イメージのサイズは 4 MB を超えることはできません。転送タイムアウト期間は 5 秒です。PNG、JPG、JPEG、BMP、GIF、WebP、TIFF、PPM の画像フォーマットのみがサポートされています。 // プロダクトおよび一般的なイメージ検索の場合、イメージの長さと幅は 100 ピクセルから 4,096 ピクセルの範囲である必要があります。 // 布地イメージの場合、イメージの長さと幅は 448 ピクセルから 4,096 ピクセルの範囲である必要があります。 // イメージに回転プロパティを含めることはできません。 SetPicContentObject(b). // 任意。プロダクトカテゴリの ID。 // 1. プロダクト検索:カテゴリが指定されている場合、指定されたカテゴリが優先されます。カテゴリが指定されていない場合、システムがカテゴリを予測して選択します。システムによって選択されたカテゴリは応答に含まれます。 // 2. 布地、ブランド、および一般的なイメージ検索:カテゴリ ID が指定されているかどうかに関わらず、カテゴリ ID は 88888888 に設定されます。 SetCategoryId(2). // 任意。イメージ内の主題を認識するかどうかを指定します。デフォルト値:true。 // 1. このパラメーターを true に設定すると、システムはイメージ内の主題を認識し、認識された主題に基づいてイメージを検索します。応答には認識結果が含まれます。 // 2. このパラメーターを false に設定すると、システムは主題認識なしでイメージ全体に基づいてイメージを検索します。 SetCrop(true). // 任意。イメージの主題領域。x1,x2,y1,y2 の形式で指定します。具体的には、x1 と y1 は左上の点を、x2 と y2 は右下の点を指定します。 // 指定された領域はイメージの境界を越えることはできません。 // Region パラメーターを指定した場合、Crop パラメーターの値に関わらず、Region パラメーターの値に基づいて検索が実行されます。 // 布地イメージ検索の場合、このパラメーターは効果がありません。システムはイメージ全体に基づいてイメージを検索します。 SetRegion("167,477,220,407"). // 任意。ユーザー定義のコンテンツ。値の長さは最大 4,096 文字です。 // このパラメーターを指定した場合、応答にはこのパラメーターとその値が含まれます。イメージの説明などのテキストを追加できます。 SetCustomContent("this is a simple test!"). // 任意。INT 型の属性。この属性はイメージ検索でイメージをフィルターするために使用できます。このパラメーターを指定した場合、応答にはこのパラメーターとその値が含まれます。 // 例えば、異なるサイトや異なるユーザーからのイメージに異なる属性を設定できます。これにより、ユーザーは属性でイメージをフィルターし、より正確な検索結果を得ることができます。 SetIntAttr(100). // 任意。STRING 型の属性。値の長さは 128 文字を超えることはできません。この属性はイメージ検索でイメージをフィルターするために使用できます。このパラメーターを指定した場合、応答にはこのパラメーターとその値が含まれます。 SetStrAttr("1") // メソッドを呼び出します。 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 を初期化します。 // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/ja/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user をご参照ください。 // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作を呼び出す権限を持っています。API 操作の呼び出しや日常の O&M には、RAM ユーザーの AccessKey ペアを使用することを推奨します。 // AccessKey ID と AccessKey Secret をプロジェクトコードにハードコーディングしないことを推奨します。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。 // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されます。ビジネス要件に応じて、設定ファイルに AccessKey ペアを保存することもできます。 var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")). SetAccessKeySecret(os.Getenv("CC_SK_ENV")). SetType("access_key"). // 値を Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com"). // 次のサンプルコードは、VPC エンドポイントを使用して Image Search API を呼び出す方法の例を示しています。 // 注意:VPC エンドポイントを使用して Image Search API を呼び出せるのは、同じリージョンに存在する ECS インスタンスまたはリソースからのみです。例えば、Image Search インスタンスがシンガポールにある場合、VPC エンドポイントを使用して Image Search API を呼び出せるのは、シンガポールに存在する ECS インスタンスまたはリソースからのみです。そうでない場合、API 操作の呼び出しは失敗します。API 呼び出しが失敗した場合は、Image Search API を呼び出す前に、ご利用の ECS インスタンスまたはリソースが Image Search インスタンスと同じリージョンにあるか確認してください。 // SetEndpointType("internal"). // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API を呼び出すために使用される VPC エンドポイント。値を Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 // 値を Image Search インスタンスが存在するリージョンの ID に置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、regionId パラメーターを 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 ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページ (https://imagesearch.console.alibabacloud.com/overview) でインスタンス名を確認できます。 SetInstanceName("xxxxxxxxxx"). // イメージ。イメージのサイズは 4 MB を超えることはできません。転送タイムアウト期間は 5 秒です。PNG、JPG、JPEG、BMP、GIF、WebP、TIFF、PPM の画像フォーマットのみがサポートされています。 // プロダクトおよび一般的なイメージ検索の場合、イメージの長さと幅は 100 ピクセルから 4,096 ピクセルの範囲である必要があります。 // イメージに回転プロパティを含めることはできません。 SetPicContentObject(b). // 任意。プロダクトカテゴリの ID。 // 1. プロダクト検索:カテゴリが指定されている場合、指定されたカテゴリが優先されます。カテゴリが指定されていない場合、システムがカテゴリを予測して選択します。システムによって選択されたカテゴリは応答に含まれます。 // 2. 布地、ブランド、および一般的なイメージ検索:カテゴリ ID が指定されているかどうかに関わらず、カテゴリ ID は 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. INT 型の属性に基づいてイメージをフィルターします:int_attr>=100。 // 2. STRING 型の属性に基づいてイメージをフィルターします:str_attr!="value1"。 // 3. INT 型と STRING 型の属性に基づいてイメージをフィルターします:int_attr=1000 AND str_attr="value1"。 SetFilter=("int_attr=56 AND str_attr=\"test\""). // 任意。類似度のしきい値。 // 類似度スコアのしきい値を指定すると、しきい値以上の類似度スコアを持つイメージのみが返されます。しきい値の範囲は 0.00~1.00 で、小数点以下 2 桁までです。デフォルト値は 0.00 です。 SetScoreThreshold=("0.54"). // 任意。イメージ内の主題を認識するかどうかを指定します。デフォルト値:true。 // 1. このパラメーターを true に設定すると、システムはイメージ内の主題を認識し、認識された主題に基づいてイメージを検索します。応答には認識結果が含まれます。 // 2. このパラメーターを false に設定すると、システムは主題認識なしでイメージ全体に基づいてイメージを検索します。 // 3. 布地イメージ検索の場合、このパラメーターは効果がありません。システムはイメージ全体に基づいてイメージを検索します。 SetCrop(true). // 任意。イメージの主題領域。x1,x2,y1,y2 の形式で指定します。具体的には、x1 と y1 は左上の点を、x2 と y2 は右下の点を指定します。 // 指定された領域はイメージの境界を越えることはできません。 // Region パラメーターを指定した場合、Crop パラメーターの値に関わらず、Region パラメーターの値に基づいて検索が実行されます。 // 3. 布地イメージ検索の場合、このパラメーターは効果がありません。システムはイメージ全体に基づいてイメージを検索します。 SetRegion("167,476,220,407"). // 任意。値を true に設定すると、応答データは ProductId パラメーターに基づいて返されます。 SetDistinctProductId(true) // メソッドを呼び出します。 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 を初期化します。 // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/ja/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user をご参照ください。 // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作を呼び出す権限を持っています。API 操作の呼び出しや日常の O&M には、RAM ユーザーの AccessKey ペアを使用することを推奨します。 // AccessKey ID と AccessKey Secret をプロジェクトコードにハードコーディングしないことを推奨します。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。 // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されます。ビジネス要件に応じて、設定ファイルに AccessKey ペアを保存することもできます。 var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")). SetAccessKeySecret(os.Getenv("CC_SK_ENV")). SetType("access_key"). // 値を Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com"). // 次のサンプルコードは、VPC エンドポイントを使用して Image Search API を呼び出す方法の例を示しています。 // 注意:VPC エンドポイントを使用して Image Search API を呼び出せるのは、同じリージョンに存在する ECS インスタンスまたはリソースからのみです。例えば、Image Search インスタンスがシンガポールにある場合、VPC エンドポイントを使用して Image Search API を呼び出せるのは、シンガポールに存在する ECS インスタンスまたはリソースからのみです。そうでない場合、API 操作の呼び出しは失敗します。API 呼び出しが失敗した場合は、Image Search API を呼び出す前に、ご利用の ECS インスタンスまたはリソースが Image Search インスタンスと同じリージョンにあるか確認してください。 // SetEndpointType("internal"). // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API を呼び出すために使用される VPC エンドポイント。値を Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 // 値を Image Search インスタンスが存在するリージョンの ID に置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、regionId パラメーターを ap-southeast-1 に設定します。 SetRegionId("ap-southeast-1") // クライアントを作成します。 client, err := imagesearch.NewClient(config) if err != nil { panic(err) } request := new(imagesearch.SearchImageByNameRequest). // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページ (https://imagesearch.console.alibabacloud.com/overview) でインスタンス名を確認できます。 SetInstanceName("XXXXXXXXXXX"). // 必須。イメージ名。名前の長さは最大 256 文字です。 // イメージは ProductId と PicName パラメーターの値によって一意に識別されます。 SetPicName("test"). // 必須。プロダクトの ID。ID の長さは 256 文字を超えることはできません。 // 1 つのプロダクト ID は複数のイメージ名に対応できます。 SetProductId("php"). // 任意。プロダクトカテゴリの ID。 // 1. プロダクト検索:カテゴリが指定されている場合、指定されたカテゴリが優先されます。カテゴリが指定されていない場合、システムがカテゴリを予測して選択します。システムによって選択されたカテゴリは応答に含まれます。 // 2. 一般的なイメージ検索:カテゴリ ID が指定されているかどうかに関わらず、カテゴリ ID は 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. INT 型の属性に基づいてイメージをフィルターします:int_attr>=100。 // 2. STRING 型の属性に基づいてイメージをフィルターします:str_attr!="value1"。 // 3. INT 型と STRING 型の属性に基づいてイメージをフィルターします:int_attr=1000 AND str_attr="value1"。 SetFilter=("int_attr=56 AND str_attr=\"test\""). // 任意。類似度のしきい値。 // 類似度スコアのしきい値を指定すると、しきい値以上の類似度スコアを持つイメージのみが返されます。しきい値の範囲は 0.00~1.00 で、小数点以下 2 桁までです。デフォルト値は 0.00 です。 SetScoreThreshold=("0.54"). // メソッドを呼び出します。 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 を初期化します。 // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/ja/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user をご参照ください。 // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作を呼び出す権限を持っています。API 操作の呼び出しや日常の O&M には、RAM ユーザーの AccessKey ペアを使用することを推奨します。 // AccessKey ID と AccessKey Secret をプロジェクトコードにハードコーディングしないことを推奨します。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。 // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されます。ビジネス要件に応じて、設定ファイルに AccessKey ペアを保存することもできます。 var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")). SetAccessKeySecret(os.Getenv("CC_SK_ENV")). SetType("access_key"). // 値を Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com"). // 次のサンプルコードは、VPC エンドポイントを使用して Image Search API を呼び出す方法の例を示しています。 // 注意:VPC エンドポイントを使用して Image Search API を呼び出せるのは、同じリージョンに存在する ECS インスタンスまたはリソースからのみです。例えば、Image Search インスタンスがシンガポールにある場合、VPC エンドポイントを使用して Image Search API を呼び出せるのは、シンガポールに存在する ECS インスタンスまたはリソースからのみです。そうでない場合、API 操作の呼び出しは失敗します。API 呼び出しが失敗した場合は、Image Search API を呼び出す前に、ご利用の ECS インスタンスまたはリソースが Image Search インスタンスと同じリージョンにあるか確認してください。 // SetEndpointType("internal"). // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API を呼び出すために使用される VPC エンドポイント。値を Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 // 値を Image Search インスタンスが存在するリージョンの ID に置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、regionId パラメーターを ap-southeast-1 に設定します。 SetRegionId("ap-southeast-1") // クライアントを作成します。 client, err := imagesearch.NewClient(config) if err != nil { panic(err) } request := new(imagesearch.DeleteImageRequest). // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページ (https://imagesearch.console.alibabacloud.com/overview) でインスタンス名を確認できます。 SetInstanceName("XXXXXXXX"). // 必須。イメージ名。名前の長さは最大 256 文字です。 // イメージは ProductId と PicName パラメーターの値によって一意に識別されます。 SetPicName("test"). // 任意。イメージの名前。このパラメーターを指定しない場合、システムは指定されたプロダクト ID に関連するすべてのイメージを削除します。このパラメーターを指定した場合、システムは ProductId と PicName パラメーターで指定されたイメージのみを削除します。 SetProductId("php"). // 任意。値を true に設定すると、フィルターによってイメージが削除されます。 SetIsDeleteByFilter(false). SetFilter("intattr3=xxx") // メソッドを呼び出します。 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 を初期化します。 // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/ja/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user をご参照ください。 // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作を呼び出す権限を持っています。API 操作の呼び出しや日常の O&M には、RAM ユーザーの AccessKey ペアを使用することを推奨します。 // AccessKey ID と AccessKey Secret をプロジェクトコードにハードコーディングしないことを推奨します。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。 // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されます。ビジネス要件に応じて、設定ファイルに AccessKey ペアを保存することもできます。 var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")). SetAccessKeySecret(os.Getenv("CC_SK_ENV")). SetType("access_key"). // 値を Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com"). // 次のサンプルコードは、VPC エンドポイントを使用して Image Search API を呼び出す方法の例を示しています。 // 注意:VPC エンドポイントを使用して Image Search API を呼び出せるのは、同じリージョンに存在する ECS インスタンスまたはリソースからのみです。例えば、Image Search インスタンスがシンガポールにある場合、VPC エンドポイントを使用して Image Search API を呼び出せるのは、シンガポールに存在する ECS インスタンスまたはリソースからのみです。そうでない場合、API 操作の呼び出しは失敗します。API 呼び出しが失敗した場合は、Image Search API を呼び出す前に、ご利用の ECS インスタンスまたはリソースが Image Search インスタンスと同じリージョンにあるか確認してください。 // SetEndpointType("internal"). // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API を呼び出すために使用される VPC エンドポイント。値を Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 // 値を Image Search インスタンスが存在するリージョンの ID に置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、regionId パラメーターを ap-southeast-1 に設定します。 SetRegionId("ap-southeast-1") // クライアントを作成します。 client, err := imagesearch.NewClient(config) if err != nil { panic(err) } request := new(imagesearch.UpdateImageRequest). // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページ (https://imagesearch.console.alibabacloud.com/overview) でインスタンス名を確認できます。 SetInstanceName("XXXXXXXX"). // 必須。イメージ名。イメージ名は変更できません。 SetPicName("test"). // 必須。プロダクトの ID。プロダクト ID は変更できません。 SetProductId("php"). // 任意。INT 型の属性。この属性はイメージ検索でイメージをフィルターするために使用できます。このパラメーターを指定した場合、応答にはこのパラメーターとその値が含まれます。 SetIntAttr(100). // 任意。STRING 型の属性。値の長さは 128 文字を超えることはできません。この属性はイメージ検索でイメージをフィルターするために使用できます。このパラメーターを指定した場合、応答にはこのパラメーターとその値が含まれます。 SetStrAttr("xxxx"). // 任意。追加したい説明。値の長さは 4,096 文字を超えることはできません。 SetCustomContent("xxx") // メソッドを呼び出します。 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 を初期化します。 // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/ja/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user をご参照ください。 // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作を呼び出す権限を持っています。API 操作の呼び出しや日常の O&M には、RAM ユーザーの AccessKey ペアを使用することを推奨します。 // AccessKey ID と AccessKey Secret をプロジェクトコードにハードコーディングしないことを推奨します。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。 // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されます。ビジネス要件に応じて、設定ファイルに AccessKey ペアを保存することもできます。 var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")). SetAccessKeySecret(os.Getenv("CC_SK_ENV")). SetType("access_key"). // 値を Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com"). // 次のサンプルコードは、VPC エンドポイントを使用して Image Search API を呼び出す方法の例を示しています。 // 注意:VPC エンドポイントを使用して Image Search API を呼び出せるのは、同じリージョンに存在する ECS インスタンスまたはリソースからのみです。例えば、Image Search インスタンスがシンガポールにある場合、VPC エンドポイントを使用して Image Search API を呼び出せるのは、シンガポールに存在する ECS インスタンスまたはリソースからのみです。そうでない場合、API 操作の呼び出しは失敗します。API 呼び出しが失敗した場合は、Image Search API を呼び出す前に、ご利用の ECS インスタンスまたはリソースが Image Search インスタンスと同じリージョンにあるか確認してください。 // SetEndpointType("internal"). // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API を呼び出すために使用される VPC エンドポイント。値を Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 // 値を Image Search インスタンスが存在するリージョンの ID に置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、regionId パラメーターを ap-southeast-1 に設定します。 SetRegionId("ap-southeast-1") // クライアントを作成します。 client, err := imagesearch.NewClient(config) if err != nil { panic(err) } request := new(imagesearch.DetailRequest). // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページ (https://imagesearch.console.alibabacloud.com/overview) でインスタンス名を確認できます。 SetInstanceName("XXXXXXXX") // メソッドを呼び出します。 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 を初期化します。 // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/ja/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user をご参照ください。 // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作を呼び出す権限を持っています。API 操作の呼び出しや日常の O&M には、RAM ユーザーの AccessKey ペアを使用することを推奨します。 // AccessKey ID と AccessKey Secret をプロジェクトコードにハードコーディングしないことを推奨します。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。 // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されます。ビジネス要件に応じて、設定ファイルに AccessKey ペアを保存することもできます。 var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")). SetAccessKeySecret(os.Getenv("CC_SK_ENV")). SetType("access_key"). // 値を Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com"). // 次のサンプルコードは、VPC エンドポイントを使用して Image Search API を呼び出す方法の例を示しています。 // 注意:VPC エンドポイントを使用して Image Search API を呼び出せるのは、同じリージョンに存在する ECS インスタンスまたはリソースからのみです。例えば、Image Search インスタンスがシンガポールにある場合、VPC エンドポイントを使用して Image Search API を呼び出せるのは、シンガポールに存在する ECS インスタンスまたはリソースからのみです。そうでない場合、API 操作の呼び出しは失敗します。API 呼び出しが失敗した場合は、Image Search API を呼び出す前に、ご利用の ECS インスタンスまたはリソースが Image Search インスタンスと同じリージョンにあるか確認してください。 // SetEndpointType("internal"). // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API を呼び出すために使用される VPC エンドポイント。値を Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 // 値を Image Search インスタンスが存在するリージョンの ID に置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、regionId パラメーターを ap-southeast-1 に設定します。 SetRegionId("ap-southeast-1") // クライアントを作成します。 client, err := imagesearch.NewClient(config) if err != nil { panic(err) } request := new(imagesearch.DumpMetaRequest). // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページ (https://imagesearch.console.alibabacloud.com/overview) でインスタンス名を確認できます。 SetInstanceName("XXXXXXXX") // メソッドを呼び出します。 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 を初期化します。 // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/ja/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user をご参照ください。 // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作を呼び出す権限を持っています。API 操作の呼び出しや日常の O&M には、RAM ユーザーの AccessKey ペアを使用することを推奨します。 // AccessKey ID と AccessKey Secret をプロジェクトコードにハードコーディングしないことを推奨します。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。 // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されます。ビジネス要件に応じて、設定ファイルに AccessKey ペアを保存することもできます。 var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")). SetAccessKeySecret(os.Getenv("CC_SK_ENV")). SetType("access_key"). // 値を Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com"). // 次のサンプルコードは、VPC エンドポイントを使用して Image Search API を呼び出す方法の例を示しています。 // 注意:VPC エンドポイントを使用して Image Search API を呼び出せるのは、同じリージョンに存在する ECS インスタンスまたはリソースからのみです。例えば、Image Search インスタンスがシンガポールにある場合、VPC エンドポイントを使用して Image Search API を呼び出せるのは、シンガポールに存在する ECS インスタンスまたはリソースからのみです。そうでない場合、API 操作の呼び出しは失敗します。API 呼び出しが失敗した場合は、Image Search API を呼び出す前に、ご利用の ECS インスタンスまたはリソースが Image Search インスタンスと同じリージョンにあるか確認してください。 // SetEndpointType("internal"). // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API を呼び出すために使用される VPC エンドポイント。値を Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 // 値を Image Search インスタンスが存在するリージョンの ID に置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、regionId パラメーターを ap-southeast-1 に設定します。 SetRegionId("ap-southeast-1") // クライアントを作成します。 client, err := imagesearch.NewClient(config) if err != nil { panic(err) } request := new(imagesearch.DumpMetaListRequest). // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページ (https://imagesearch.console.alibabacloud.com/overview) でインスタンス名を確認できます。 SetInstanceName("XXXXXXXX"). // 任意。タスクの ID。 SetId(1464). // 任意。返される最初のエントリの序数。デフォルト値:1。 SetPageNumber(1). // 任意。返されるエントリの数。デフォルト値:20。 SetPageSize(1) // メソッドを呼び出します。 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 を初期化します。 // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/ja/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user をご参照ください。 // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作を呼び出す権限を持っています。API 操作の呼び出しや日常の O&M には、RAM ユーザーの AccessKey ペアを使用することを推奨します。 // AccessKey ID と AccessKey Secret をプロジェクトコードにハードコーディングしないことを推奨します。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。 // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されます。ビジネス要件に応じて、設定ファイルに AccessKey ペアを保存することもできます。 var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")). SetAccessKeySecret(os.Getenv("CC_SK_ENV")). SetType("access_key"). // 値を Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com"). // 次のサンプルコードは、VPC エンドポイントを使用して Image Search API を呼び出す方法の例を示しています。 // 注意:VPC エンドポイントを使用して Image Search API を呼び出せるのは、同じリージョンに存在する ECS インスタンスまたはリソースからのみです。例えば、Image Search インスタンスがシンガポールにある場合、VPC エンドポイントを使用して Image Search API を呼び出せるのは、シンガポールに存在する ECS インスタンスまたはリソースからのみです。そうでない場合、API 操作の呼び出しは失敗します。API 呼び出しが失敗した場合は、Image Search API を呼び出す前に、ご利用の ECS インスタンスまたはリソースが Image Search インスタンスと同じリージョンにあるか確認してください。 // SetEndpointType("internal"). // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API を呼び出すために使用される VPC エンドポイント。値を Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 // 値を Image Search インスタンスが存在するリージョンの ID に置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、regionId パラメーターを ap-southeast-1 に設定します。 SetRegionId("ap-southeast-1") // クライアントを作成します。 client, err := imagesearch.NewClient(config) if err != nil { panic(err) } request := new(imagesearch.IncreaseInstanceRequest). // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページ (https://imagesearch.console.alibabacloud.com/overview) でインスタンス名を確認できます。 SetInstanceName("XXXXXXXX"). // 必須。イメージが OSS バケットに保存されている場合は、バケット名を入力します。 SetBucketName("bucketName"). // 必須。イメージが保存されているパス。パスはスラッシュ (/) で始まり、スラッシュ (/) で終わることはできません。 // イメージが保存されているパスに increment.meta という名前のファイルを作成します。詳細については、Image Search ドキュメントの「ユーザーガイド」章の「バッチ操作の実行」トピックをご参照ください。 SetPath("/public/xxx"). // 任意。呼び出しが成功した場合のコールバックアドレス。アドレスは文字列 http:// または https:// で始まる必要があります。 SetCallbackAddress("http://xxx/xxx") // メソッドを呼び出します。 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 を初期化します。 // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/ja/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user をご参照ください。 // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作を呼び出す権限を持っています。API 操作の呼び出しや日常の O&M には、RAM ユーザーの AccessKey ペアを使用することを推奨します。 // AccessKey ID と AccessKey Secret をプロジェクトコードにハードコーディングしないことを推奨します。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。 // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されます。ビジネス要件に応じて、設定ファイルに AccessKey ペアを保存することもできます。 var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")). SetAccessKeySecret(os.Getenv("CC_SK_ENV")). SetType("access_key"). // 値を Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com"). // 次のサンプルコードは、VPC エンドポイントを使用して Image Search API を呼び出す方法の例を示しています。 // 注意:VPC エンドポイントを使用して Image Search API を呼び出せるのは、同じリージョンに存在する ECS インスタンスまたはリソースからのみです。例えば、Image Search インスタンスがシンガポールにある場合、VPC エンドポイントを使用して Image Search API を呼び出せるのは、シンガポールに存在する ECS インスタンスまたはリソースからのみです。そうでない場合、API 操作の呼び出しは失敗します。API 呼び出しが失敗した場合は、Image Search API を呼び出す前に、ご利用の ECS インスタンスまたはリソースが Image Search インスタンスと同じリージョンにあるか確認してください。 // SetEndpointType("internal"). // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API を呼び出すために使用される VPC エンドポイント。値を Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 // 値を Image Search インスタンスが存在するリージョンの ID に置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、regionId パラメーターを ap-southeast-1 に設定します。 SetRegionId("ap-southeast-1") // クライアントを作成します。 client, err := imagesearch.NewClient(config) if err != nil { panic(err) } request := new(imagesearch.IncreaseList). // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、https://imagesearch.console.alibabacloud.com/overview でインスタンス名を取得します。 SetInstanceName("XXXXXXXX"). // 任意。バッチタスクの ID。 SetId(1470). // 任意。OSS バケットの名前。 SetBucketName("bucketName"). // 任意。OSS バケットへのパス。 SetPath("xx"). // 任意。返される最初のエントリの序数。デフォルト値:1。 SetPageNumber(1). // 任意。返されるエントリの数。デフォルト値:20。 SetPageSize(1) // メソッドを呼び出します。 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 を初期化します。 // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/ja/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user の「AccessKey ペアの作成」をご参照ください。 // Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作を呼び出す権限を持っています。API 操作の呼び出しや日常の O&M には、RAM ユーザーの AccessKey ペアを使用することを推奨します。 // AccessKey ID と AccessKey Secret をプロジェクトコードにハードコーディングしないことを推奨します。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。 // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されます。ビジネス要件に応じて、設定ファイルに AccessKey ペアを保存することもできます。 var config = new(rpc.Config).SetAccessKeyId(os.Getenv("CC_AK_ENV")). SetAccessKeySecret(os.Getenv("CC_SK_ENV")). SetType("access_key"). // 値を Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 SetEndpoint("imagesearch.ap-southeast-1.aliyuncs.com"). // 次のサンプルコードは、VPC エンドポイントを使用して Image Search API を呼び出す方法の例を示しています。 // 注意:VPC エンドポイントを使用して Image Search API を呼び出せるのは、同じリージョンに存在する ECS インスタンスまたはリソースからのみです。例えば、Image Search インスタンスがシンガポールにある場合、VPC エンドポイントを使用して Image Search API を呼び出せるのは、シンガポールに存在する ECS インスタンスまたはリソースからのみです。そうでない場合、API 操作の呼び出しは失敗します。API 呼び出しが失敗した場合は、Image Search API を呼び出す前に、ご利用の ECS インスタンスまたはリソースが Image Search インスタンスと同じリージョンにあるか確認してください。 // SetEndpointType("internal"). // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // SetEndpoint("imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API を呼び出すために使用される VPC エンドポイント。値を Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、endpoint パラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 // 値を Image Search インスタンスが存在するリージョンの ID に置き換えてください。例えば、Image Search インスタンスがシンガポールにある場合、regionId パラメーターを 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 ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページ (https://imagesearch.console.alibabacloud.com/overview) でインスタンス名を確認できます。 SetInstanceName("XXXXXXXX"). // イメージ。イメージのサイズは 4 MB を超えることはできません。転送タイムアウト期間は 5 秒です。PNG、JPG、JPEG、BMP、GIF、WebP、TIFF、PPM の画像フォーマットのみがサポートされています。 // プロダクト、ブランド、および一般的なイメージの場合、イメージの長さと幅は 100 ピクセルから 4,096 ピクセルの範囲である必要があります。 // 布地イメージの場合、イメージの長さと幅は 448 ピクセルから 4,096 ピクセルの範囲である必要があります。 // イメージに回転情報を含めることはできません。イメージのファイルサイズは 2 MB を超えることはできません。転送タイムアウト期間は 5 秒を超えることはできません。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 }