edit-icon download-icon

インポート

最終更新日: Jun 28, 2020

シナリオ

インポートは、大量の画像をインポートする必要があるシナリオに適しています。

手順

次に示すように、インポートを使用するには、Object Storage Service (OSS) を有効にしてから、必要な RAM ロール権限を Image Search アカウントに付与します。

1. OSS の有効化

  • OSS の有効化については、「OSS の有効化」をご参照ください。 Image Search インスタンスと OSS が同じリージョンにあることを確認してください。
  • OSS を有効化した後、バケットを作成する必要があります。詳細は、「バケットの作成」をご参照ください。

2. 画像のインポート

画像を OSS バケットにインポートするには、次のガイドラインに従ってください。

  • 画像を保存するパスは、ユーザーが設定可能です。パスを指定したら、[インポート] をクリックして画像をインポートします。

  • 指定したパスに increment.meta ファイルが作成されていることを確認してください。このファイルには、インポートタスクの情報が保存されます。ファイル形式は次の要件を満たしている必要があります。

    • 各行は、1 つの画像のみに対応すること。
    • すべての画像情報は、JSON 形式でエンコードされていること (後述)。
名前 タイプ 説明 備考
OperationType String 操作 このフィールドには、画像に対して実行される操作を指定します。ADD は、新しい画像を追加します。

DELETE は、画像を削除します。
ProductId String 一意の商品/画像識別子 商品画像検索の場合、このフィールドには、商品 ID を指定します。

一般画像検索の場合、このフィールドには、画像名を指定します。
CategoryId Integer カテゴリ情報 商品画像検索の場合、このフィールドは必須ではありません。このフィールドには、画像が属するカテゴリを指定します。詳細は、「カテゴリ一覧」をご参照ください。

一般画像検索の場合、このフィールドは不要です。このフィールドを空のままにするか、値を 88888888 に設定します。
CustomContent String カスタムコンテンツ このフィールドには、カスタムコンテンツを指定します。カスタムコンテンツは読み取り専用で、検索結果に表示されます。
PicName String 画像リスト このフィールドには、インポートする画像名のリストを指定します。
  • increment.meta ファイルの例:
  1. {"OperationType":"ADD","ProductId":"1000", "CategoryId":0, "CustomContent":"k1:v1,k2:v2,k3:v3","PicName":"girl_cloth1.jpg"}
  2. {"OperationType":"ADD","ProductId":"1001", "CategoryId":1,"CustomContent":"k1:v1,k2:v2,k3:v3", "PicName":"girl_cloth3.jpg"}
  3. {"OperationType":"ADD","ProductId":"1002", "CategoryId":0, "CustomContent":"k1:v1,k2:v2,k3:v3", "PicName":"girl_cloth4.jpg"}
  4. {"OperationType":"ADD","ProductId":"1003", "CustomContent":"k1:v1,k2:v2,k3:v3", "PicName":"girl_cloth6.jpg"}
  5. {"OperationType":"DELETE","ProductId":"1004", "PicName":"fengyi.jpg"}
  6. {"OperationType":"DELETE","ProductId":"1005"}
  • increment.meta ファイルにリストされている画像は、increment.meta ファイルと同じパスに保存されています。

OSS への画像のインポートの詳細は、「オブジェクトのアップロード」をご参照ください。

3. アカウントへの RAM ロール権限の付与

インポートを使用するには、Security Token Service を使用して、OSS への一時的なアクセス権限を Image Search アカウントに付与する必要があります。手順は次のとおりです。

ロールの作成

  1. RAM コンソールにアクセスし、[RAM ロール] > [RAM ロールの作成] を選択します。

    1

  2. [Alibaba Cloud サービス] > [Image Search] を選択します。

    2

  3. RAM ロール名を入力します。

    3

ロールへの権限付与

新しく作成されたロールには権限が設定されていません。関連する権限を取得するポリシーを作成する必要があります。

ポリシーを作成するには、次の形式を使用します。

  1. {
  2. "Version": "1",
  3. "Statement": [
  4. {
  5. "Effect": "Allow",
  6. "Action": [
  7. "oss:GetObject"
  8. ],
  9. "Resource": [
  10. "acs:oss:*:*:${bucket}${path}/*"
  11. ]
  12. }
  13. ]
  14. }
  • ${bucket}:バケットを指定します。
  • ${path}:インポートする画像を格納するパスを指定します。

この例では、バケット imagesearch-increment 内のパス /increment に画像をインポートするポリシーを作成しています。

  1. {
  2. "Version": "1",
  3. "Statement": [
  4. {
  5. "Effect": "Allow",
  6. "Action": [
  7. "oss:GetObject"
  8. ],
  9. "Resource": [
  10. "acs:oss:*:*:imagesearch-increment/increment/*"
  11. ]
  12. }
  13. ]
  14. }

次の手順を実行して、RAM ロール権限をアカウントに付与します。

  1. RAM コンソールで、[権限] > [ポリシー] > [ポリシーの作成] を選択します。

    image.png | center | 830x405

  2. [カスタムポリシーの作成] ページで、ポリシー名を入力し、[スクリプト] を選択して、[ポリシードキュメント] を設定します。

    image.png | center | 830x639

  3. [OK] をクリックします。

  4. RAM コンソールに戻り、[RAM ロール] を選択します。

  5. [ロール名] 列で、ターゲット RAM ロールを選択し、[権限の追加] をクリックします。

    4

  6. 左側の [ポリシー名] 列で、作成したポリシーを選択し、[OK] をクリックします。

    image.png | center | 830x405

画像のインポート

OSS から画像をインポートするには、Image Search コンソールにアクセスし、[インスタンスの詳細] ページで [インポート] をクリックし、基本情報を入力してから [インポート] をクリックします。

image.png | center | 830x405

ARN:Image Search にインポートするために作成した RAM ロールアカウント名。ロールをクリックして、ARN を確認します (次図)。

1

バケット名:画像が保存されている OSS のバケットの名前。

注:Image Search インスタンスと OSS が同じリージョンにあることを確認してください。

パス:画像が保存されているパス。

注:データパスは、スラッシュ (/) で始まる必要があります (例:/imagesearch)。

次の図は、バケット imagesearch1 内のデータパス /imagesearch を示します。

image.png | center | 830x406

OSS インポート履歴

[インスタンスの詳細] ページで [インポート履歴の表示] をクリックすると、インポートタスクの履歴が表示されます。インポートタスクが完了すると、結果を示すメッセージが表示されます。

  • 一部の画像を処理できない場合、「一部の画像のインポートが失敗しました。レポートをダウンロードする」というエラーメッセージが表示されます。このエラーが発生した場合、レポートをダウンロードして、影響を受けた画像を表示し、エラーの根本原因を特定できます。
  • 選択したすべての画像がインポートされた場合、インポートタスクが成功したことを示すメッセージが表示されます。