Image Search はバッチ操作機能を提供します。この機能を使用すると、Object Storage Service (OSS) から Image Search に複数の画像をインポートしたり、Image Search から複数の画像を一度に削除したりできます。この機能には、高い安定性、高効率、使いやすさというメリットがあります。この機能は、1 つのタスクを使用して多数の画像を管理する必要があるシナリオに適しています。このトピックでは、複数の画像を一度にインポートおよび削除する方法について説明します。
手順
OSS をアクティブ化する
OSS がアクティブ化されていない場合は、OSS をアクティブ化します。 OSS をアクティブ化した後、バケットを作成する必要があります。
OSS の料金は別途請求されます。課金方法の詳細については、「課金概要」をご参照ください。
OSS バケットと Image Search インスタンスは同じリージョンに存在する必要があります。そうでない場合、バッチ操作機能は使用できません。
OSS に画像をインポートする
OSS に画像をインポートする方法の詳細については、「オブジェクトのアップロード」をご参照ください。
OSS バケットにインポートされる画像を保存するために、バッチタスクの作成時にカスタムパスを指定できます。
increment.meta ファイルを作成する
画像が保存されている OSS バケットに increment.meta ファイルを作成します。このファイルは、バッチタスクで処理される画像の詳細を保存するために使用されます。
increment.meta ファイルと increment.meta ファイルで指定された画像は、同じバケットに保存する必要があります。そうでない場合、バッチ操作は失敗します。
increment.meta ファイルの名前は固定されており、Image Search はファイル名に基づいてバッチタスクで処理される画像の詳細を読み取ります。ファイル名を変更しないでください。そうでない場合、バッチ操作は失敗します。
Image Search では、同じバケット内の異なるパスに保存されている画像に対してバッチ操作を実行できます。たとえば、increment.meta ファイルが imagesearch という名前のバケットのルートディレクトリに保存されていて、girl_cloth8.jpg という名前の画像がバケット内の girlCloth という名前のディレクトリに保存されている場合、画像の PicName パラメータは、increment.meta ファイルで
"PicName":"girlCloth/girl_cloth8.jpg"として指定する必要があります。 girlCloth の前、または girl_cloth8.jpg の後にはスラッシュ(/)を追加できないことに注意してください。このロジックは複数レベルのディレクトリにも適用されます。OSS に保存されている画像の名前には、ファイル名拡張子を追加する必要があります。たとえば、画像の名前が girl_cloth10.jpg の場合、PicName パラメータは "PicName":"girl_cloth10" ではなく "PicName":"girl_cloth10.jpg" として指定する必要があります。そうでない場合、バッチ操作は失敗します。
increment.meta ファイルでは、1 行に 1 つの画像のみを指定できます。1 行に複数の画像を指定すると、バッチ操作は失敗します。
次のサンプルコードは、increment.meta ファイルで画像を指定する方法の例を示しています。
{"OperationType": "ADD","ProductId": "1000","PicName": "girl_cloth1.jpg","CategoryId": 0,"IntAttr": 0,"StrAttr": "value1","CustomContent": "k1:v1,k2:v2,k3:v3","Region": "20,40,60,80"} // 操作タイプ:追加、商品ID:1000、画像名:girl_cloth1.jpg、カテゴリID:0、整数属性:0、文字列属性:value1、カスタムコンテンツ:k1:v1,k2:v2,k3:v3、対象領域:20,40,60,80
{"OperationType": "ADD","ProductId": "1000","PicName": "girl_cloth2.jpg","CategoryId": 0,"IntAttr": 0,"StrAttr": "value2","CustomContent": "k1:v1,k2:v2,k3:v3","Region": "20,40,60,80"} // 操作タイプ:追加、商品ID:1000、画像名:girl_cloth2.jpg、カテゴリID:0、整数属性:0、文字列属性:value2、カスタムコンテンツ:k1:v1,k2:v2,k3:v3、対象領域:20,40,60,80
{"OperationType": "ADD","ProductId": "1001","PicName": "girl_cloth3.jpg","CategoryId": 1,"CustomContent": "k1:v1,k2:v2,k3:v3"} // 操作タイプ:追加、商品ID:1001、画像名:girl_cloth3.jpg、カテゴリID:1、カスタムコンテンツ:k1:v1,k2:v2,k3:v3
{"OperationType": "ADD","ProductId": "1002","PicName": "girl_cloth4.jpg","CategoryId": 0,"CustomContent": "k1:v1,k2:v2,k3:v3","Crop": false} // 操作タイプ:追加、商品ID:1002、画像名:girl_cloth4.jpg、カテゴリID:0、カスタムコンテンツ:k1:v1,k2:v2,k3:v3、切り抜き:false
{"OperationType": "ADD","ProductId": "1003","PicName": "girl_cloth7.jpg","CustomContent": "https://www.aliyun.com/imagesearch/girl_cloth7.jpg"} // 操作タイプ:追加、商品ID:1003、画像名:girl_cloth7.jpg、カスタムコンテンツ:https://www.aliyun.com/imagesearch/girl_cloth7.jpg
{"OperationType": "ADD","ProductId": "1003","PicName": "girl_cloth6.jpg","CustomContent": "k1:v1,k2:v2,k3:v3"} // 操作タイプ:追加、商品ID:1003、画像名:girl_cloth6.jpg、カスタムコンテンツ:k1:v1,k2:v2,k3:v3
{"OperationType": "ADD","ProductId": "1006","PicName": "girlCloth/girl_cloth10.jpg","CustomContent": "k1:v1,k2:v2,k3:v3"} // 操作タイプ:追加、商品ID:1006、画像名:girlCloth/girl_cloth10.jpg、カスタムコンテンツ:k1:v1,k2:v2,k3:v3
{"OperationType": "DELETE","ProductId": "1004","PicName": "fengyi.jpg"} // 操作タイプ:削除、商品ID:1004、画像名:fengyi.jpg
{"OperationType": "DELETE","ProductId": "1005"} // 操作タイプ:削除、商品ID:1005
このファイルでは、各画像の情報が JSON 形式でエンコードされています。次の表に、ファイル内のパラメータを示します。
パラメータ | タイプ | 必須 | 説明 |
OperationType | 文字列 | はい | 操作タイプ。
|
ProductId | 文字列 | はい | 画像の一意の ID。ID は最大 256 文字までです。 |
PicName | 文字列 | はい | OSS バケットに保存されている画像の名前。名前は最大 256 文字までです。 重要
|
CategoryId | 整数 | いいえ | 画像のカテゴリ。カテゴリの詳細については、「カテゴリのリファレンス」をご参照ください。
|
CustomContent | 文字列 | はい | ユーザー定義コンテンツ。値は最大 4,096 文字までです。 説明 画像のユーザー定義コンテンツは、検索結果に自動的に返されます。このパラメータを使用して、画像の URL や画像の説明などの情報を追加できます。 |
IntAttr | 整数 | いいえ | 整数型の属性。この属性は、画像を検索するときに画像をフィルタリングするために使用されます。 説明 画像を検索するときに、「整数属性」パラメータとフィルタ条件を指定して画像をフィルタリングできます。詳細については、「フィルタ条件を指定して画像を検索する」をご参照ください。 |
StrAttr | 文字列 | いいえ | 文字列型の属性。値は最大 128 文字までです。この属性は、画像を検索するときに画像をフィルタリングするために使用されます。 説明
|
Crop | ブール値 | いいえ | 画像内の被写体を識別し、識別された被写体に基づいて画像を検索するかどうかを指定します。デフォルト値:true。有効値:
|
Region | 文字列 | いいえ | 画像の対象領域。対象領域は 説明 このパラメーターを指定した場合、このパラメーターの値は [Crop] パラメーターよりも優先されます。 |
Image Search アカウントに OSS へのアクセスを承認する
Image Search でバッチ操作機能を実装するには、Image Search を OSS と一緒に使用する必要があります。バッチ操作機能を初めて使用するときは、Image Search アカウントに OSS へのアクセスを承認します。アカウントが承認されている場合は、この手順をスキップします。
Image Search コンソール にログインします。
サービス タイプを選択し、管理する Image Search インスタンスの名前をクリックします。
[バッチ操作] タブをクリックします。

[バッチタスクの作成] をクリックします。表示されるメッセージで、[承認の確認] をクリックします。
[クラウド リソース アクセス承認] ページで、[承認ポリシーの確認] をクリックします。
バッチタスクを作成する
Image Search コンソール にログインします。
サービス タイプを選択し、管理する Image Search インスタンスの名前をクリックします。
[バッチ操作] タブをクリックします。

[バッチタスクの作成] をクリックします。

バッチタスクに次のパラメータを設定します。
リージョン
このパラメータは、Image Search インスタンスが存在するリージョンを指定します。
バケット名
このパラメータは、OSS で作成したバケットの名前を指定します。
重要OSS バケットと Image Search インスタンスが同じリージョンに存在することを確認してください。
パス
このパラメータは、画像と increment.meta ファイルが保存されているパスを指定します。

META ファイル
このパラメータは、処理される画像の詳細を保存するために使用されるファイルを指定します。ファイル名は increment.meta です。フィールドの右側にある更新アイコンをクリックして、ファイルが存在するかどうかを確認できます。
操作完了後のコールバック
このパラメータは、コールバック URL を指定します。URL は HTTP または HTTPS で始まる必要があります。
{ // コールバックのJSONデータ例 "finishTime": "2021-05-19 17:50:00", // バッチタスクの完了時刻。秒単位まで正確です。 "instanceId": "imagesearch-cn-xxxx", // Image SearchインスタンスのID "instanceName": "instanceName", // Image Searchインスタンスの名前 "message": "success", // タスク結果の説明。「success」はタスクが完了したことを示します。 "processResultUrl": "https://image-search-task-info.oss-cn-shanghai.aliyuncs.com/yyyyyyyyyy", // 失敗情報をダウンロードするためのURL "status": "NORMAL", // バッチタスクの結果。「NORMAL」はバッチタスクが完了したことを示します。「FAIL」はバッチタスクが失敗したことを示します。 "taskId": 111 // バッチタスクのID }パラメータ
説明
finishTime
バッチタスクが完了した時刻。時刻は秒単位まで正確です。
instanceName
Image Search インスタンスの名前。
instanceId
Image Search インスタンスの ID。
status
バッチタスクの結果。NORMAL の値は、バッチタスクが完了したことを示します。FAIL の値は、バッチタスクが失敗したことを示します。
taskId
バッチタスクの ID。
message
タスク結果の説明。success の値は、タスクが完了したことを示します。
processResultUrl
失敗情報をダウンロードするために使用される URL。
次のステップ
インスタンスの詳細ページの [バッチ操作] タブで、Image Search インスタンスで作成されたすべてのバッチタスクの詳細を表示できます。バッチタスクがインポート済み状態の場合、[エラーメッセージ] 列にバッチタスク結果の説明が表示されます。

[バケット名] または [パス] でバッチタスクをフィルタリングできます。
バッチタスクの [エラーメッセージ] 列に [一部のイメージを処理できず、隔離されています。] メッセージが表示された場合は、増分タスク中に一部のイメージの処理に失敗しています。[レポートのダウンロード] をクリックすると、失敗の理由を確認できます。