このトピックでは、PHP 用 Image Search SDK の使用方法について説明し、サンプルコードを提供します。
メソッド
メソッド | 説明 |
Add | 画像を追加します。 |
SearchImageByPic | 画像に基づいて類似の画像を検索します。 |
SearchImageByName | 画像ギャラリー内の既存の画像の名前に基づいて類似の画像を検索します。 |
Delete | 1 つ以上の画像を削除します。 |
UpdateImage | 画像を更新します。 |
Detail | インスタンスに関する情報を照会します。 |
DumpMeta | メタデータをエクスポートするタスクを作成します。 |
DumpMetaList | メタデータのエクスポートに使用されるタスクのリストを照会します。 |
BatchTask | バッチタスクを作成します。 |
BatchTaskList | バッチ操作の実行に使用されるタスクのリストを照会します。 |
CompareSimilarByImage | 2 つの画像の類似性を比較します。 |
準備
Alibaba Cloud SDK をインストールして使用する前に、Alibaba Cloud アカウントを作成し、Alibaba Cloud アカウントの AccessKey ペアを取得していることを確認してください。詳細については、「AccessKey ペアを取得する」をご参照ください。
PHP: >=5.5
Composer のイメージを取得します。
https://developer.aliyun.com/composer依存関係をインストールする
Composer を使用して、PHP 用 Image Search SDK を取得します。
composer require alibabacloud/imagesearch-20201214composer.json ファイルを使用します。
{ "require": { "alibabacloud/imagesearch-20201214": "^4.2.2" } }
次のサンプルコードは、依存関係に関連する情報を示しています。
declare (strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use AlibabaCloud\SDK\ImageSearch\V20201214\ImageSearch;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\AddImageAdvanceRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\SearchImageByPicAdvanceRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\SearchImageByNameRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\DeleteImageRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\UpdateImageRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\DetailRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\DumpMetaRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\DumpMetaListRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\IncreaseInstanceRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\IncreaseListRequest;
use AlibabaCloud\Tea\Exception\TeaUnableRetryError;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
use GuzzleHttp\Psr7\Stream;Add
サンプルコード
function _addImage() { $config = new Config(); // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/en/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 シークレットをプロジェクトコードにハードコードしないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。 // この例では、AccessKey ID と AccessKey シークレットは環境変数として保存されています。ビジネス要件に基づいて、AccessKey ID と AccessKey シークレットを構成ファイルに保存することもできます。 $config->accessKeyId = getenv("CC_AK_ENV"); $config->accessKeySecret = getenv("CC_SK_ENV"); // 値を、Image Search インスタンスが存在するリージョンの ID に置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメーターを ap-southeast-1 に設定します。 $config->regionId = "<regionId>"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 $config->endpoint = "imagesearch.[regionId].aliyuncs.com"; // 次のサンプルコードは、仮想プライベートクラウド (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 インスタンスと同じリージョンにあるかどうかを確認してください。 // $config->endpointType = "internal"; // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 $client = new ImageSearch($config); $request = new AddImageAdvanceRequest(); // 必須。Image Search インスタンスの名前。インスタンス ID ではなく、インスタンス名を入力してください。Image Search インスタンスを購入した後、https://imagesearch.console.alibabacloud.com/overview にある Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。 $request->instanceName = "xxxxxx"; // 必須。製品の ID。ID は最大 512 文字の長さにすることができます。 // 1 つの製品 ID は複数の画像名に対応できます。 $request->productId = "testPhp"; // 必須。画像の名前。名前は最大 512 文字の長さにすることができます。 // 1. 画像は、productId パラメーターと picName パラメーターの値によって一意に識別されます。 // 2. 製品 ID (productId) と画像名 (picName) が既存の画像と同じ画像を追加すると、新しく追加された画像が既存の画像を上書きします。 $request->picName = "testPhp"; // オプション。製品カテゴリの ID。 // 1. 商品画像検索:カテゴリが指定されている場合は、指定されたカテゴリが優先されます。カテゴリが指定されていない場合、システムはカテゴリを予測して選択します。システムによって選択されたカテゴリはレスポンスに含まれます。 // 2. 布地、商標、および一般的な画像検索:カテゴリが指定されているかどうかに関係なく、カテゴリ ID は 88888888 に設定されます。 $request->categoryId = 3; // オプション。ユーザー定義のコンテンツ。値は最大 4,096 文字の長さにすることができます。 // このパラメーターを指定すると、レスポンスにこのパラメーターとその値が含まれます。画像の説明などのテキストを追加できます。 $request->customContent = "this is a simple test"; // オプション。INT タイプの属性。属性は、画像検索中に画像をフィルタリングするために使用できます。このパラメーターを指定すると、レスポンスにこのパラメーターとその値が含まれます。 // たとえば、異なるサイトの画像や異なるユーザーの画像に異なる属性を設定できます。これにより、ユーザーは属性で画像をフィルタリングし、より正確な検索結果を得ることができます。 $request->intAttr = 56; // オプション。STRING タイプの属性。値は最大 128 文字の長さにすることができます。属性は、画像検索中に画像をフィルタリングするために使用できます。このパラメーターを指定すると、レスポンスにこのパラメーターとその値が含まれます。 $request->strAttr = "test"; // オプション。画像内の被写体を識別するかどうかを指定します。デフォルト値:true。 // 1. このパラメーターを true に設定すると、システムは画像内の被写体を識別し、識別された被写体に基づいて画像を検索します。レスポンスには識別結果が含まれます。 // 2. このパラメーターを false に設定すると、システムは被写体を識別せずに画像全体に基づいて画像を検索します。 // 3. 布地画像検索の場合、このパラメーターは有効になりません。システムは画像全体に基づいて画像を検索します。 $request->crop = true; // オプション。画像の被写体領域。x1,x2,y1,y2 の形式。具体的には、x1 と y1 は左上の点を指定し、x2 と y2 は右下の点を指定します。指定された領域は画像の境界を越えることはできません。 // region パラメーターを指定した場合、crop パラメーターの値に関係なく、region パラメーターの値に基づいて検索が実行されます。 // 布地画像検索の場合、このパラメーターは有効になりません。システムは画像全体に基づいて画像を検索します。 $request->region = "167,467,221,407"; // 画像。画像はサイズが 4 MB を超えることはできません。送信タイムアウト期間は 5 秒を超えることはできません。サポートされている画像形式は、PNG、JPG、JPEG、BMP、GIF、WebP、TIFF、PPM のみです。 // 商品画像検索と一般的な画像検索の場合、画像の長さと幅は 100 ピクセルから 4,096 ピクセルの範囲でなければなりません。 // 画像に回転プロパティを含めることはできません。 // 次のサンプルコードは、画像 URL を指定する方法の例を示しています。 // composer require alibabacloud/darabonba-stream // use AlibabaCloud\Darabonba\Stream\StreamUtil; // $imageStream = StreamUtil::readFromFilePath("<fileUrl>"); // 次のサンプルコードは、画像ファイルをアップロードする方法の例を示しています。 $imageStream = new Stream(fopen("<filePath>", 'r+')); $request->picContentObject = $imageStream; $runtime = new RuntimeOptions(); $runtime->maxIdleConns = 3; $runtime->connectTimeout = 3000; $runtime->readTimeout = 3000; try { $response = $client->addImageAdvance($request, $runtime); var_dump($response->toMap()); } catch (TeaUnableRetryError $e) { var_dump($e->getLastException(), $e->getLastRequest()); } }サンプルレスポンス
{ ["requestId"]=> string(36) "242CB8B7-DD36-42ED-9A76-37915DC7ED81" ["success"]=> bool(true) ["message"]=> string(7) "success" ["code"]=> int(0) ["picInfo"]=> array(2) { ["CategoryId"]=> int(0) ["Region"]=> string(15) "167,477,221,407" } ["_name":protected]=> array(5) { ["requestId"]=> string(9) "RequestId" ["success"]=> string(7) "Success" ["message"]=> string(7) "Message" ["code"]=> string(4) "Code" ["picInfo"]=> string(7) "PicInfo" } ["_required":protected]=> array(0) { } }
SearchImageByPic
サンプルコード
function _getImageByPic() { $config = new Config(); // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/en/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 シークレットをプロジェクトコードにハードコードしないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。 // この例では、AccessKey ID と AccessKey シークレットは環境変数として保存されています。ビジネス要件に基づいて、AccessKey ID と AccessKey シークレットを構成ファイルに保存することもできます。 $config->accessKeyId = getenv("CC_AK_ENV"); $config->accessKeySecret = getenv("CC_SK_ENV"); // 値を、Image Search インスタンスが存在するリージョンの ID に置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメーターを ap-southeast-1 に設定します。 $config->regionId = "<regionId>"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 $config->endpoint = "imagesearch.[regionId].aliyuncs.com"; // 次のサンプルコードは、VPC エンドポイントを使用して Image Search API を呼び出す方法の例を示しています。 // 注:VPC エンドポイントを使用して Image Search API を呼び出すことができるのは、同じリーポイントを使用して Image Search API を呼び出すことができるのは、同じリージョンにある Elastic Compute Service (ECS) インスタンスまたはリソースからのみです。たとえば、Image Search インスタンスがシンガポールにある場合、VPC エンドポイントを使用して Image Search API を呼び出すことができるのは、シンガポールにある ECS インスタンスまたはリソースからのみです。そうでない場合、API 操作の呼び出しは失敗します。API 呼び出しが失敗した場合は、Image Search API を呼び出す前に、ECS インスタンスまたはリソースが Image Search インスタンスと同じリージョンにあるかどうかを確認してください。 // $config->endpointType = "internal"; // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 $client = new ImageSearch($config); $request = new SearchImageByPicAdvanceRequest(); // 必須。Image Search インスタンスの名前。インスタンス ID ではなく、インスタンス名を入力してください。Image Search インスタンスを購入した後、https://imagesearch.console.alibabacloud.com/overview にある Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。 $request->instanceName = "xxxxx"; // 画像。画像はサイズが 4 MB を超えることはできません。送信タイムアウト期間は 5 秒を超えることはできません。サポートされている画像形式は、PNG、JPG、JPEG、BMP、GIF、WebP、TIFF、PPM のみです。 // 商品画像検索と一般的な画像検索の場合、画像の長さと幅は 100 ピクセルから 4,096 ピクセルの範囲でなければなりません。 // 画像に回転プロパティを含めることはできません。 // 次のサンプルコードは、画像 URL を指定する方法の例を示しています。 // composer require alibabacloud/darabonba-stream // use AlibabaCloud\Darabonba\Stream\StreamUtil; // $imageStream = StreamUtil::readFromFilePath("<fileUrl>"); // 次のサンプルコードは、画像ファイルをアップロードする方法の例を示しています。 $imageStream = new Stream(fopen("<filePath>", 'r+')); $request->picContentObject = $imageStream; // オプション。製品カテゴリの ID。 // 1. 商品画像検索:カテゴリが指定されている場合は、指定されたカテゴリが優先されます。カテゴリが指定されていない場合、システムはカテゴリを予測して選択します。システムによって選択されたカテゴリはレスポンスに含まれます。 // 2. 一般的画像検索:カテゴリが指定されているかどうかに関係なく、カテゴリ ID は 88888888 に設定されます。 $request->categoryId = 3; // 1. このパラメーターを true に設定すると、システムは画像内の被写体を識別し、識別された被写体に基づいて画像を検索します。レスポンスには識別結果が含まれます。 // 2. このパラメーターを false に設定すると、システムは被写体を識別せずに画像全体に基づいて画像を検索します。 // 3. 布地画像検索の場合、このパラメーターは有効になりません。システムは画像全体に基づいて画像を検索します。 $request->crop = true; // オプション。画像の被写体領域。x1,x2,y1,y2 の形式。具体的には、x1 と y1 は左上の点を指定し、x2 と y2 は右下の点を指定します。指定された領域は画像の境界を越えることはできません。 // region パラメーターを指定した場合、crop パラメーターの値に関係なく、region パラメーターの値に基づいて検索が実行されます。 // 布地画像検索の場合、このパラメーターは有効になりません。システムは画像全体に基づいて画像を検索します。 $request->region = "167,467,221,407"; // オプション。フィルター条件。int_attr は、>、>=、<、<=、= の演算子をサポートしています。str_attr は、= と != 演算子をサポートしています。条件間の論理演算子を AND または OR に設定できます。 // 例: // 1. INT タイプの属性に基づいて画像をフィルタリングする:int_attr>=100。 // 2. STRING タイプの属性に基づいて画像をフィルタリングする:str_attr!="value1"。 // 3. INT タイプと STRING タイプの属性に基づいて画像をフィルタリングする:int_attr=1000 AND str_attr="value1"。 $request->filter = "int_attr=56 AND str_attr =\"test\""; // オプション。値を true に設定すると、レスポンスデータは ProductId パラメーターに基づいて返されます。 $request->distinctProductId=false; $runtime = new RuntimeOptions(); $runtime->maxIdleConns = 3; $runtime->connectTimeout = 3000; $runtime->readTimeout = 3000; try { $response = $client->searchImageByPicAdvance($request, $runtime); var_dump($response->toMap()); } catch (TeaUnableRetryError $e) { var_dump($e->getLastException(), $e->getLastRequest()); } catch (Exception $e) { } }サンプルレスポンス
{ ["requestId"]=> string(36) "453517A3-7D00-476E-A946-8CC3B9DC6FA1" ["success"]=> bool(true) ["code"]=> int(0) ["msg"]=> string(7) "success" ["auctions"]=> array(5) { [0]=> array(4) { ["CategoryId"]=> int(0) ["PicName"]=> string(7) "vae.jpg" ["ProductId"]=> string(4) "1000" ["SortExprValues"]=> string(22) "7.33136443711219e+24;0" ["Score"]=> float(1) } [1]=> array(4) { ["CategoryId"]=> int(0) ["PicName"]=> string(4) "test" ["ProductId"]=> string(4) "test" ["SortExprValues"]=> string(22) "7.33136443711219e+24;0" ["Score"]=> float(1) } ........ [4]=> array(4) { ["CategoryId"]=> int(0) ["PicName"]=> string(4) "test" ["ProductId"]=> string(4) "1000" ["SortExprValues"]=> string(22) "7.33136443711219e+24;0" ["Score"]=> float(1) } } ["head"]=> array(3) { ["DocsFound"]=> int(5) ["DocsReturn"]=> int(5) ["SearchTime"]=> int(171) } ["picInfo"]=> array(3) { ["CategoryId"]=> int(0) ["MultiRegion"]=> array(1) { [0]=> array(1) { ["Region"]=> string(15) "134,705,187,785" } } ["AllCategories"]=> array(14) { [0]=> array(2) { ["Id"]=> int(0) ["Name"]=> string(4) "Tops" } ........ [13]=> array(2) { ["Id"]=> int(88888888) ["Name"]=> string(5) "Other" } } ["Region"]=> string(15) "167,477,221,407" } ["_name":protected]=> array(7) { ["requestId"]=> string(9) "RequestId" ["success"]=> string(7) "Success" ["code"]=> string(4) "Code" ["msg"]=> string(3) "Msg" ["auctions"]=> string(8) "Auctions" ["head"]=> string(4) "Head" ["picInfo"]=> string(7) "PicInfo" } ["_required":protected]=> array(0) { } }
SearchImageByName
サンプルコード
function _getImageByName() { $config = new Config(); // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/en/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 シークレットをプロジェクトコードにハードコードしないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。 // この例では、AccessKey ID と AccessKey シークレットは環境変数として保存されています。ビジネス要件に基づいて、AccessKey ID と AccessKey シークレットを構成ファイルに保存することもできます。 $config->accessKeyId = getenv("CC_AK_ENV"); $config->accessKeySecret = getenv("CC_SK_ENV"); // 値を、Image Search インスタンスが存在するリージョンの ID に置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメーターを ap-southeast-1 に設定します。 $config->regionId = "<regionId>"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 $config->endpoint = "imagesearch.[regionId].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 インスタンスと同じリージョンにあるかどうかを確認してください。 // $config->endpointType = "internal"; // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 $client = new ImageSearch($config); $request = new SearchImageByNameRequest(); // 必須。Image Search インスタンスの名前。インスタンス ID ではなく、インスタンス名を入力してください。Image Search インスタンスを購入した後、https://imagesearch.console.alibabacloud.com/overview にある Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。 $request->instanceName = "xxxxxxx"; // 必須。製品の ID。ID は最大 512 文字の長さにすることができます。 // 1 つの製品 ID は複数の画像名に対応できます。 $request->productId = "testPhp"; // 必須。画像の名前。名前は最大 512 文字の長さにすることができます。 // 1. 画像は、productId パラメーターと picName パラメーターの値によって一意に識別されます。 // 2. 製品 ID (productId) と画像名 (picName) が既存の画像と同じ画像を追加すると、新しく追加された画像が既存の画像を上書きします。 $request->picName = "testPhp"; // オプション。製品カテゴリの ID。 // 1. 商品画像検索:カテゴリが指定されている場合は、指定されたカテゴリが優先されます。カテゴリが指定されていない場合、システムはカテゴリを予測して選択します。システムによって選択されたカテゴリはレスポンスに含まれます。 // 2. 一般的画像検索:カテゴリが指定されているかどうかに関係なく、カテゴリ ID は 88888888 に設定されます。 $request->categoryId = 3; // 1. このパラメーターを true に設定すると、システムは画像内の被写体を識別し、識別された被写体に基づいて画像を検索します。レスポンスには識別結果が含まれます。 // 2. このパラメーターを false に設定すると、システムは被写体を識別せずに画像全体に基づいて画像を検索します。 // 3. 布地画像検索の場合、このパラメーターは有効になりません。システムは画像全体に基づいて画像を検索します。 $request->crop = true; // オプション。画像の被写体領域。x1,x2,y1,y2 の形式。具体的には、x1 と y1 は左上の点を指定し、x2 と y2 は右下の点を指定します。指定された領域は画像の境界を越えることはできません。 // region パラメーターを指定した場合、crop パラメーターの値に関係なく、region パラメーターの値に基づいて検索が実行されます。 // 布地画像検索の場合、このパラメーターは有効になりません。システムは画像全体に基づいて画像を検索します。 $request->region = "167,467,221,407"; // オプション。フィルター条件。int_attr は、>、>=、<、<=、= の演算子をサポートしています。str_attr は、= と != 演算子をサポートしています。条件間の論理演算子を AND または OR に設定できます。 // 例: // 1. INT タイプの属性に基づいて画像をフィルタリングする:int_attr>=100。 // 2. STRING タイプの属性に基づいて画像をフィルタリングする:str_attr!="value1"。 // 3. INT タイプと STRING タイプの属性に基づいて画像をフィルタリングする:int_attr=1000 AND str_attr="value1"。 $request->filter = "int_attr=56 AND str_attr =\"test\""; try { $response = $client->SearchImageByName($request); var_dump($response->toMap()); } catch (TeaUnableRetryError $e) { var_dump($e->getLastException(), $e->getLastRequest()); } catch (Exception $e) { } }サンプルレスポンス
["requestId"]=> string(36) "9248A5FC-97AB-4A96-8764-C771CF61D9A1" ["success"]=> bool(true) ["code"]=> int(0) ["msg"]=> string(7) "success" ["auctions"]=> array(5) { [0]=> array(4) { ["CategoryId"]=> int(0) ["PicName"]=> string(7) "vae.jpg" ["ProductId"]=> string(4) "1000" ["SortExprValues"]=> string(22) "7.33136443711219e+24;0" ["Score"]=> float(1) } ........ [4]=> array(4) { ["CategoryId"]=> int(0) ["PicName"]=> string(4) "test" ["ProductId"]=> string(4) "1000" ["SortExprValues"]=> string(22) "7.33136443711219e+24;0" ["Score"]=> float(1) } } ["head"]=> array(3) { ["DocsFound"]=> int(5) ["DocsReturn"]=> int(5) ["SearchTime"]=> int(21) } ["picInfo"]=> array(2) { ["CategoryId"]=> int(0) ["MultiRegion"]=> array(1) { [0]=> array(1) { ["Region"]=> string(15) "134,705,187,785" } } ["AllCategories"]=> array(14) { [0]=> array(2) { ["Id"]=> int(0) ["Name"]=> string(4) "Tops" } ........ [13]=> array(2) { ["Id"]=> int(88888888) ["Name"]=> string(5) "Other" } } } ["_name":protected]=> array(7) { ["requestId"]=> string(9) "RequestId" ["success"]=> string(7) "Success" ["code"]=> string(4) "Code" ["msg"]=> string(3) "Msg" ["auctions"]=> string(8) "Auctions" ["head"]=> string(4) "Head" ["picInfo"]=> string(7) "PicInfo" } ["_required":protected]=> array(0) { } }
Delete
サンプルコード
function _deleteImage() { $config = new Config(); // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/en/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 シークレットをプロジェクトコードにハードコードしないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。 // この例では、AccessKey ID と AccessKey シークレットは環境変数として保存されています。ビジネス要件に基づいて、AccessKey ID と AccessKey シークレットを構成ファイルに保存することもできます。 $config->accessKeyId = getenv("CC_AK_ENV"); $config->accessKeySecret = getenv("CC_SK_ENV"); // 値を、Image Search インスタンスが存在するリージョンの ID に置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメーターを ap-southeast-1 に設定します。 $config->regionId = "<regionId>"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 $config->endpoint = "imagesearch.[regionId].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 インスタンスと同じリージョンにあるかどうかを確認してください。 // $config->endpointType = "internal"; // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 $client = new ImageSearch($config); $request = new DeleteImageRequest(); // 必須。Image Search インスタンスの名前。インスタンス ID ではなく、インスタンス名を入力してください。Image Search インスタンスを購入した後、https://imagesearch.console.alibabacloud.com/overview にある Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。 $request->instanceName = "xxxxxx"; // 必須。画像の名前。名前は最大 512 文字の長さにすることができます。 // 1. 画像は、productId パラメーターと picName パラメーターの値によって一意に識別されます。 $request->productId = "test"; // 2. オプション。画像の名前。このパラメーターを指定しない場合、システムは指定された製品 ID に関連するすべての画像を削除します。このパラメーターを指定すると、システムは productId パラメーターと picName パラメーターで指定された画像のみを削除します。 $request->picName = "test"; // オプション。値を true に設定すると、フィルターによって画像が削除されます。 $request->isDeleteByFilter=false; $request->filter = "intattr3=xxx"; try { $response = $client->deleteImage($request); var_dump($response->toMap()); } catch (TeaUnableRetryError $e) { var_dump($e->getLastException(), $e->getLastRequest()); } catch (Exception $e) { } }サンプルレスポンス
{ ["requestId"]=> string(36) "052ECD87-933D-4E65-94F7-F0C0947E41A1" ["success"]=> bool(true) ["message"]=> string(7) "success" ["code"]=> int(0) ["_name":protected]=> array(4) { ["requestId"]=> string(9) "RequestId" ["success"]=> string(7) "Success" ["message"]=> string(7) "Message" ["code"]=> string(4) "Code" } ["_required":protected]=> array(0) { } }
UpdateImage
サンプルコード
function _updateImage() { $config = new Config(); // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/en/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 シークレットをプロジェクトコードにハードコードしないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。 // この例では、AccessKey ID と AccessKey シークレットは環境変数として保存されています。ビジネス要件に基づいて、AccessKey ID と AccessKey シークレットを構成ファイルに保存することもできます。 $config->accessKeyId = getenv("CC_AK_ENV"); $config->accessKeySecret = getenv("CC_SK_ENV"); // 値を、Image Search インスタンスが存在するリージョンの ID に置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメーターを ap-southeast-1 に設定します。 $config->regionId = "<regionId>"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 $config->endpoint = "imagesearch.[regionId].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 インスタンスと同じリージョンにあるかどうかを確認してください。 // $config->endpointType = "internal"; // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 $client = new ImageSearch($config); $request = new UpdateImageRequest(); // 必須。Image Search インスタンスの名前。インスタンス ID ではなく、インスタンス名を入力してください。Image Search インスタンスを購入した後、https://imagesearch.console.alibabacloud.com/overview にある Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。 $request->instanceName = "xxxxxx"; // 必須。製品の ID。製品 ID は変更できません。 $request->productId = "1"; // 必須。画像の名前。画像名は変更できません。 $request->picName = "1"; // オプション。INT タイプの属性。属性は、画像検索中に画像をフィルタリングするために使用できます。このパラメーターを指定すると、レスポンスにこのパラメーターとその値が含まれます。 $request->intAttr = 10; // オプション。STRING タイプの属性。値は最大 128 文字の長さにすることができます。属性は、画像検索中に画像をフィルタリングするために使用できます。このパラメーターを指定すると、レスポンスにこのパラメーターとその値が含まれます。 $request->strAttr = "test"; // オプション。ユーザー定義のコンテンツ。値は最大 4,096 文字の長さにすることができます。 $request->customContent = "This is a sample description"; try { $response = $client->updateImage($request); var_dump($response->body->toMap()); } catch (TeaUnableRetryError $e) { var_dump($e->getLastException(), $e->getLastRequest()); } catch (Exception $e) { } }サンプルレスポンス
array(3) { ["Code"]=> int(0) ["RequestId"]=> string(36) "2CD69717-846D-167A-89AD-647213332248" ["Success"]=> bool(true) }
Detail
サンプルコード
function _detail() { $config = new Config(); // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/en/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 シークレットをプロジェクトコードにハードコードしないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。 // この例では、AccessKey ID と AccessKey シークレットは環境変数として保存されています。ビジネス要件に基づいて、AccessKey ID と AccessKey シークレットを構成ファイルに保存することもできます。 $config->accessKeyId = getenv("CC_AK_ENV"); $config->accessKeySecret = getenv("CC_SK_ENV"); // 値を、Image Search インスタンスが存在するリージョンの ID に置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメーターを ap-southeast-1 に設定します。 $config->regionId = "<regionId>"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 $config->endpoint = "imagesearch.[regionId].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 インスタンスと同じリージョンにあるかどうかを確認してください。 // $config->endpointType = "internal"; // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 $client = new ImageSearch($config); $request = new DetailRequest(); // 必須。Image Search インスタンスの名前。インスタンス ID ではなく、インスタンス名を入力してください。Image Search インスタンスを購入した後、https://imagesearch.console.alibabacloud.com/overview にある Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。 $request->instanceName = "xxxxxx"; try { $response = $client->detail($request); var_dump($response->body->toMap()); } catch (TeaUnableRetryError $e) { var_dump($e->getLastException(), $e->getLastRequest()); } catch (Exception $e) { } }サンプルレスポンス
array(3) { ["Instance"]=> array(8) { ["Capacity"]=> int(10) ["Name"]=> string(19) "xxxxxxx" ["Qps"]=> int(1) ["Region"]=> string(11) "cn-shanghai" ["ServiceType"]=> int(0) ["TotalCount"]=> int(99999) ["UtcCreate"]=> int(1620382716000) ["UtcExpireTime"]=> int(1623081600000) } ["RequestId"]=> string(36) "41465B01-11B4-149D-BB6F-BB498B3C39F0" ["Success"]=> bool(true) }
DumpMeta
サンプルコード
function _dumpMeta() { $config = new Config(); // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/en/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 シークレットをプロジェクトコードにハードコードしないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。 // この例では、AccessKey ID と AccessKey シークレットは環境変数として保存されています。ビジネス要件に基づいて、AccessKey ID と AccessKey シークレットを構成ファイルに保存することもできます。 $config->accessKeyId = getenv("CC_AK_ENV"); $config->accessKeySecret = getenv("CC_SK_ENV"); // 値を、Image Search インスタンスが存在するリージョンの ID に置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメーターを ap-southeast-1 に設定します。 $config->regionId = "<regionId>"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 $config->endpoint = "imagesearch.[regionId].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 インスタンスと同じリージョンにあるかどうかを確認してください。 // $config->endpointType = "internal"; // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 $client = new ImageSearch($config); $request = new DumpMetaRequest(); // 必須。Image Search インスタンスの名前。インスタンス ID ではなく、インスタンス名を入力してください。Image Search インスタンスを購入した後、https://imagesearch.console.alibabacloud.com/overview にある Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。 $request->instanceName = "xxxxxx"; try { $response = $client->dumpMeta($request); var_dump($response->body->toMap()); } catch (TeaUnableRetryError $e) { var_dump($e->getLastException(), $e->getLastRequest()); } catch (Exception $e) { } }サンプルレスポンス
array(3) { ["Data"]=> array(2) { ["DumpMetaStatus"]=> string(10) "PROCESSING" ["Id"]=> int(572) } ["RequestId"]=> string(36) "A1234E2C-C99E-122C-97D1-F30FE012533B" ["Success"]=> bool(true) }
DumpMetaList
サンプルコード
function _dumpMetaList() { $config = new Config(); // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/en/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 シークレットをプロジェクトコードにハードコードしないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。 // この例では、AccessKey ID と AccessKey シークレットは環境変数として保存されています。ビジネス要件に基づいて、AccessKey ID と AccessKey シークレットを構成ファイルに保存することもできます。 $config->accessKeyId = getenv("CC_AK_ENV"); $config->accessKeySecret = getenv("CC_SK_ENV"); // 値を、Image Search インスタンスが存在するリージョンの ID に置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメーターを ap-southeast-1 に設定します。 $config->regionId = "<regionId>"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 $config->endpoint = "imagesearch.[regionId].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 インスタンスと同じリージョンにあるかどうかを確認してください。 // $config->endpointType = "internal"; // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 $client = new ImageSearch($config); $request = new DumpMetaListRequest(); // 必須。Image Search インスタンスの名前。インスタンス ID ではなく、インスタンス名を入力してください。Image Search インスタンスを購入した後、https://imagesearch.console.alibabacloud.com/overview にある Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。 $request->instanceName = "xxxxxx"; // オプション。メタデータをエクスポートするために使用されるタスクの ID。 $request->id = 567; // オプション。ページ番号。デフォルト値:1。 $request->pageNumber = 1; // オプション。1 ページあたりのエントリ数。デフォルト値:20。 $request->pageSize = 1; try { $response = $client->dumpMetaList($request); var_dump($response->body->toMap()); } catch (TeaUnableRetryError $e) { var_dump($e->getLastException(), $e->getLastRequest()); } catch (Exception $e) { } }サンプルレスポンス
array(2) { ["Data"]=> array(4) { ["DumpMetaList"]=> array(1) { [0]=> array(7) { ["Code"]=> string(1) "0" ["Id"]=> int(567) ["MetaUrl"]=> string(208) "https://xx/xx" ["Msg"]=> string(7) "success" ["Status"]=> string(7) "SUCCESS" ["UtcCreate"]=> int(1639969113000) ["UtcModified"]=> int(1639969140000) } } ["PageNumber"]=> int(1) ["PageSize"]=> int(1) ["TotalCount"]=> int(1) } ["RequestId"]=> string(36) "46044936-BA2E-10E2-9C82-C00FF83862E5" }
BatchTask
サンプルコード
function _batchTask() { $config = new Config(); // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/en/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 シークレットをプロジェクトコードにハードコードしないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。 // この例では、AccessKey ID と AccessKey シークレットは環境変数として保存されています。ビジネス要件に基づいて、AccessKey ID と AccessKey シークレットを構成ファイルに保存することもできます。 $config->accessKeyId = getenv("CC_AK_ENV"); $config->accessKeySecret = getenv("CC_SK_ENV"); // 値を、Image Search インスタンスが存在するリージョンの ID に置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメーターを ap-southeast-1 に設定します。 $config->regionId = "<regionId>"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 $config->endpoint = "imagesearch.[regionId].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 インスタンスと同じリージョンにあるかどうかを確認してください。 // $config->endpointType = "internal"; // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 $client = new ImageSearch($config); $request = new IncreaseInstanceRequest(); // 必須。Image Search インスタンスの名前。インスタンス ID ではなく、インスタンス名を入力してください。Image Search インスタンスを購入した後、https://imagesearch.console.alibabacloud.com/overview にある Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。 $request->instanceName = "xxxxxx"; // 必須。画像が Object Storage Service (OSS) バケットに保存されている場合は、バケット名を入力します。 $request->bucketName = "xxxx"; // 必須。画像が保存されているパス。パスはスラッシュ (/) で始まり、スラッシュ (/) で終わることはできません。 // 画像が保存されているパスに increment.meta という名前のファイルを作成します。詳細については、ユーザーガイドの「バッチ操作の実行」を参照してください。 $request->path = "/public/xxx"; // オプション。API 呼び出しが成功した場合のコールバック URL。URL は http:// または https:// で始まる必要があります。 $request->callbackAddress = "http://xxx/xxx"; try { $response = $client->increaseInstance($request); var_dump($response->body->toMap()); } catch (TeaUnableRetryError $e) { var_dump($e->getLastException(), $e->getLastRequest()); } catch (Exception $e) { } }サンプルレスポンス
array(3) { ["Data"]=> array(2) { ["Id"]=> int(1475) ["IncrementStatus"]=> string(10) "PROCESSING" } ["RequestId"]=> string(36) "768C6C02-E3FE-1024-8461-103F7C529EFA" ["Success"]=> bool(true) }
BatchTaskList
サンプルコード
function _batchTaskList() { $config = new Config(); // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/en/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 シークレットをプロジェクトコードにハードコードしないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。 // この例では、AccessKey ID と AccessKey シークレットは環境変数として保存されています。ビジネス要件に基づいて、AccessKey ID と AccessKey シークレットを構成ファイルに保存することもできます。 $config->accessKeyId = getenv("CC_AK_ENV"); $config->accessKeySecret = getenv("CC_SK_ENV"); // 値を、Image Search インスタンスが存在するリージョンの ID に置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメーターを ap-southeast-1 に設定します。 $config->regionId = "<regionId>"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 $config->endpoint = "imagesearch.[regionId].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 インスタンスと同じリージョンにあるかどうかを確認してください。 // $config->endpointType = "internal"; // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 $client = new ImageSearch($config); $request = new IncreaseListRequest(); // 必須。Image Search インスタンスの名前。インスタンス ID ではなく、インスタンス名を入力してください。Image Search インスタンスを購入した後、https://imagesearch.console.alibabacloud.com/overview にある Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。 $request->instanceName = "xxxxxx"; // オプション。タスクの ID。 $request->id = 567; // オプション。OSS バケットの名前。 $request->bucketName = "xxxx"; // オプション。OSS バケットへのパス。 $request->path = "/public/xxx"; // オプション。ページ番号。デフォルト値:1。 $request->pageNumber = 1; // オプション。1 ページあたりのエントリ数。デフォルト値:20。 $request->pageSize = 1; try { $response = $client->increaseList($request); var_dump($response->body->toMap()); } catch (TeaUnableRetryError $e) { var_dump($e->getLastException(), $e->getLastRequest()); } catch (Exception $e) { } }サンプルレスポンス
array(2) { ["Data"]=> array(4) { ["Increments"]=> array(1) { ["Instance"]=> array(1) { [0]=> array(9) { ["BucketName"]=> string(21) "xxxxx" ["Code"]=> string(1) "0" ["ErrorUrl"]=> string(226) "https://xx/xx" ["Id"]=> int(1464) ["Msg"]=> string(7) "success" ["Path"]=> string(23) "/public/xxx" ["Status"]=> string(6) "NORMAL" ["UtcCreate"]=> int(1639107872000) ["UtcModified"]=> int(1639125540000) } } } ["PageNumber"]=> int(1) ["PageSize"]=> int(1) ["TotalCount"]=> int(1) } ["RequestId"]=> string(36) "603C696F-EC04-101F-8767-29A63382237A" }
CompareSimilarByImage
サンプルコード
function _compareSimilarByImage() { $config = new Config(); // AccessKey ペアの作成方法については、https://www.alibabacloud.com/help/en/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 シークレットをプロジェクトコードにハードコードしないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。 // この例では、AccessKey ID と AccessKey シークレットは環境変数として保存されています。ビジネス要件に基づいて、AccessKey ID と AccessKey シークレットを構成ファイルに保存することもできます。 $config->accessKeyId = getenv("CC_AK_ENV"); $config->accessKeySecret = getenv("CC_SK_ENV"); // 値を、Image Search インスタンスが存在するリージョンの ID に置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメーターを ap-southeast-1 に設定します。 $config->regionId = "<regionId>"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch.ap-southeast-1.aliyuncs.com に設定します。 $config->endpoint = "imagesearch.[regionId].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 インスタンスと同じリージョンにあるかどうかを確認してください。 // $config->endpointType = "internal"; // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメーターを指定し、値を internal に設定する必要があります。 // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えます。たとえば、Image Search インスタンスがシンガポールにある場合は、エンドポイントパラメーターを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。 $client = new ImageSearch($config); $request = new CompareSimilarByImageAdvanceRequest(); // 必須。Image Search インスタンスの名前。インスタンス ID ではなく、インスタンス名を入力してください。Image Search インスタンスを購入した後、https://imagesearch.console.alibabacloud.com/overview にある Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。 $request->instanceName = "xxxxxx"; // 次のサンプルコードは、画像 URL を指定する方法の例を示しています。 // composer require alibabacloud/darabonba-stream // use AlibabaCloud\Darabonba\Stream\StreamUtil; // $primaryPicContent = StreamUtil::readFromFilePath("<fileUrl>"); // $secondaryPicContent = StreamUtil::readFromFilePath("<fileUrl>"); // 次のサンプルコードは、画像ファイルをアップロードする方法の例を示しています。 $primaryPicContent = new Stream(fopen("<filePath>", 'r+')); $secondaryPicContent = new Stream(fopen("<filePath>", 'r+')); $request->primaryPicContentObject = $primaryPicContent; $request->secondaryPicContentObject = $secondaryPicContent; $runtime = new RuntimeOptions(); $runtime->maxIdleConns = 3; $runtime->connectTimeout = 3000; $runtime->readTimeout = 3000; try { $response = $client->compareSimilarByImageAdvance($request, $runtime); var_dump($response->toMap()); } catch (TeaUnableRetryError $e) { var_dump($e->getLastException(), $e->getLastRequest()); } }サンプルレスポンス
{ ["requestId"]=> string(36) "242CB8B7-DD36-42ED-9A76-37915DC7ED81" ["success"]=> bool(true) ["message"]=> string(7) "success" ["code"]=> int(0) ["score"]=> int(1) ["_required":protected]=> array(0) { } }