すべてのプロダクト
Search
ドキュメントセンター

Image Search:Java 向け SDK

最終更新日:Apr 16, 2025

このトピックでは、Java 向け 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 ペアを取得する」をご参照ください。

  • Java 向け Image Search SDK をプロジェクトに追加します。

    Java 向け Image Search SDK を Maven 依存関係としてインポートし、SDK をプロジェクトに追加します。

      <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>imagesearch20201214</artifactId>
            <version>4.2.2</version>
       </dependency>

Add

  • サンプルコード

    import com.aliyun.imagesearch20201214.Client;
    import com.aliyun.imagesearch20201214.models.AddImageAdvanceRequest;
    import com.aliyun.imagesearch20201214.models.AddImageResponse;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.tea.TeaException;
    import com.aliyun.teautil.models.RuntimeOptions;
    import java.io.FileInputStream;
    import java.net.URL;
    import java.io.InputStream;
    public class Add {
        public static void main(String[] args) throws Exception {
            Config authConfig = 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 Secret をプロジェクトコードにハードコードしないことをお勧めします。ハードコードすると、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。
            // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されています。ビジネス要件に基づいて、設定ファイルに AccessKey ペアを保存することもできます。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "ap-southeast-1"; // Image Search インスタンスが存在するリージョンの ID に置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメータを ap-southeast-1 に設定します。
            authConfig.endpoint = "imagesearch.ap-southeast-1.aliyuncs.com"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを 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 インスタンスと同じリージョンにあるかどうかを確認してください。
            // authConfig.endpointType = "internal";  // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメータを指定し、値を internal に設定する必要があります。
            // authConfig.endpoint = "imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。
    
    
            Client client = new Client(authConfig);
            AddImageAdvanceRequest request = new AddImageAdvanceRequest();
            // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。
            request.instanceName = "XXXXXXXXXXX";
            // 必須。製品の ID。ID は 256 文字以下にする必要があります。
            // 1 つの製品 ID は複数の画像名に対応できます。
            request.productId = "test";
            // 必須。画像の名前。名前は 256 文字以下にすることができます。
            // 1. 画像は、productId パラメータと picName パラメータの値によって一意に識別されます。
            // 2. 製品 ID(productId)と画像名(picName)が既存の画像と同じである画像を追加すると、新しく追加された画像が既存の画像を上書きします。
            request.picName = "1000";
            // オプション。製品カテゴリの 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 に設定すると、システムは被写体を識別せずに画像全体に基づいて画像を検索します。
            request.crop = true;
            // オプション。画像の被写体領域。x1,x2,y1,y2 の形式です。具体的には、x1 と y1 は左上の点を指定し、x2 と y2 は右下の点を指定します。指定された領域は画像の境界を越えることはできません。
            // region パラメータを指定すると、crop パラメータの値に関係なく、region パラメータの値に基づいて検索が実行されます。
            request.region = "167,467,221,407";
            RuntimeOptions runtimeOptions = new RuntimeOptions();
            String picName = "D:/123.jpg";      
            try {            
               // 画像。画像は 4 MB 以下にする必要があります。送信タイムアウト期間は 5 秒を超えることはできません。サポートされている画像形式は、PNG、JPG、JPEG、BMP、GIF、WebP、TIFF、PPM のみです。
               // 製品画像検索と汎用画像検索の場合、画像の長さと幅は 100 ピクセルから 4,096 ピクセルまでである必要があります。
               // 画像に回転プロパティを含めることはできません。
    
               // 以下のサンプルコードは、画像 URL を指定する方法の例を示しています。
               // String url = "https://www.example.com/123.jpg"; 
               // request.picContentObject = new URL(url).openStream();
               // 以下のサンプルコードは、画像ファイルをアップロードする方法の例を示しています。               
               InputStream inputStream = new FileInputStream(picName);
               request.picContentObject = inputStream; 
               AddImageResponse response = client.addImageAdvance(request,runtimeOptions);
               System.out.println("success: " + response.getBody().success + ". message: " 
                    + response.getBody().message        
                    + ". categoryId: " + response.getBody().picInfo.categoryId 
                    + ". region:" + response.getBody().picInfo.region        
                    + ". requestId: " + response.getBody().requestId);
            } catch (TeaException e) {
                System.out.println(e.getCode());
                System.out.println(e.getData());
                System.out.println(e.getMessage());
                e.printStackTrace();
            }
        }
    }
  • サンプルレスポンス

    success: true. message: success. categoryId: 9. region:383,681,291,549. requestId: 016D63E3-D0C5-42D3-8879-55E1A705FBA4

SearchImageByPic

  • サンプルコード

    import com.aliyun.imagesearch20201214.Client;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.imagesearch20201214.models.SearchImageByPicAdvanceRequest;
    import com.aliyun.imagesearch20201214.models.SearchImageByPicResponse;
    import com.aliyun.tea.TeaException;
    import com.aliyun.teautil.models.RuntimeOptions;
    import java.io.FileInputStream;
    import java.net.URL;
    import java.io.InputStream;
    import java.util.List;
    public class SearchImageByPic {
        public static void main(String[] args) throws Exception {
            Config authConfig = 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 Secret をプロジェクトコードにハードコードしないことをお勧めします。ハードコードすると、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。
            // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されています。ビジネス要件に基づいて、設定ファイルに AccessKey ペアを保存することもできます。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "ap-southeast-1"; // Image Search インスタンスが存在するリージョンの ID に置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメータを ap-southeast-1 に設定します。
            authConfig.endpoint = "imagesearch.ap-southeast-1.aliyuncs.com"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを 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 インスタンスと同じリージョンにあるかどうかを確認してください。
            // authConfig.endpointType = "internal";  // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメータを指定し、値を internal に設定する必要があります。
            // authConfig.endpoint = "imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。
    
    
            Client client = new Client(authConfig);
            SearchImageByPicAdvanceRequest request = new SearchImageByPicAdvanceRequest();
            // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。
            request.instanceName = "XXXXXXXXX";
            // オプション。製品カテゴリの ID。
            // 1. 製品画像検索:カテゴリが指定されている場合、指定されたカテゴリが優先されます。カテゴリが指定されていない場合、システムはカテゴリを予測して選択します。システムによって選択されたカテゴリはレスポンスに含まれます。
            // 2. 汎用画像検索:カテゴリが指定されているかどうかに関係なく、カテゴリ ID は 88888888 に設定されます。
            request.categoryId = 3;
            // オプション。返されるエントリの数。有効な値:1 ~ 100。デフォルト値:10。
            request.num = 10;
            // オプション。返される最初のエントリの序数。有効な値:0 ~ 499。デフォルト値:0。
            request.start = 0;
            // オプション。画像内の被写体を識別するかどうかを指定します。デフォルト値:true。
            // 1. このパラメータを true に設定すると、システムは画像内の被写体を識別し、識別された被写体に基づいて画像を検索します。レスポンスには識別結果が含まれます。
            // 2. このパラメータを false に設定すると、システムは被写体を識別せずに画像全体に基づいて画像を検索します。
            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\"";
            String picName = "D:/123.jpg";
            // 画像。画像は 4 MB 以下にする必要があります。送信タイムアウト期間は 5 秒を超えることはできません。サポートされている画像形式は、PNG、JPG、JPEG、BMP、GIF、WebP、TIFF、PPM のみです。
            // 製品画像検索と汎用画像検索の場合、画像の長さと幅は 100 ピクセルから 4,096 ピクセルまでである必要があります。
            // 画像に回転プロパティを含めることはできません。
            request.num = 10;
            request.start = 0;
            // オプション。値を true に設定すると、レスポンスデータは ProductId パラメータに基づいて返されます。
            request.distinctProductId=false;
            RuntimeOptions runtimeObject =  new RuntimeOptions();
            try {            
                // 以下のサンプルコードは、画像 URL を指定する方法の例を示しています。
                // String url = "https://www.example.com/123.jpg"; 
                // request.picContentObject = new URL(url).openStream();  
    
                // 以下のサンプルコードは、画像ファイルをアップロードする方法の例を示しています。          
                InputStream inputStream = new FileInputStream(picName);
                request.picContentObject = inputStream; 
                SearchImageByPicResponse response = client.searchImageByPicAdvance(request, runtimeObject);
                System.out.println(response.getBody().requestId);
                System.out.println(response.getBody().picInfo.categoryId);
                System.out.println(response.getBody().picInfo.region);
                List<SearchImageByPicResponseBody.SearchImageByPicResponseBodyAuctions> auctions = response.getBody().getAuctions();
                for(SearchImageByPicResponseBody.SearchImageByPicResponseBodyAuctions auction:auctions) {    
                    System.out.println(auction.categoryId + " " + auction.picName + " " 
                        + auction.productId + " " + auction.customContent + " " + auction.score + " " 
                        + auction.strAttr + " " + auction.intAttr);
                }
                System.out.println("Multi-subject information");
                SearchImageByPicResponseBody.SearchImageByPicResponseBodyPicInfo picInfo = response.getBody().getPicInfo();
                for (SearchImageByPicResponseBody.SearchImageByPicResponseBodyPicInfoMultiRegion multiRegion : picInfo.getMultiRegion()) {    
                    System.out.println(multiRegion.region);
                }
            } catch (TeaException e) {
                System.out.println(e.getCode());
                System.out.println(e.getData());
                System.out.println(e.getMessage());
                e.printStackTrace();
            }
        }
    }
  • サンプルレスポンス

    09BE019A-AE3D-4D22-99C9-10533D8AC631
    3
    167,467,221,407
    3 1000 test this is a simple test 1.0 test 56
    Multi-subject information
    112,440,76,387

SearchImageByName

  • サンプルコード

    import com.aliyun.imagesearch20201214.Client;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.imagesearch20201214.models.SearchImageByNameRequest;
    import com.aliyun.imagesearch20201214.models.SearchImageByNameResponse;
    import com.aliyun.tea.TeaException;
    import java.util.List;
    public class  SearchImageByName{
        public static void main(String[] args) throws Exception {
            // 構成。
            Config authConfig = 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 Secret をプロジェクトコードにハードコードしないことをお勧めします。ハードコードすると、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。
            // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されています。ビジネス要件に基づいて、設定ファイルに AccessKey ペアを保存することもできます。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "ap-southeast-1"; // Image Search インスタンスが存在するリージョンの ID に置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメータを ap-southeast-1 に設定します。
            authConfig.endpoint = "imagesearch.ap-southeast-1.aliyuncs.com"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを 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 インスタンスと同じリージョンにあるかどうかを確認してください。
            // authConfig.endpointType = "internal";  // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメータを指定し、値を internal に設定する必要があります。
            // authConfig.endpoint = "imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。
    
    
            Client client = new Client(authConfig);
            SearchImageByNameRequest request = new SearchImageByNameRequest();
            // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。
            request.instanceName = "XXXXXXXXX";
            // 必須。製品の ID。ID は 256 文字以下にする必要があります。
            // 1 つの製品 ID は複数の画像名に対応できます。
            request.productId = "test";
            // 必須。画像名。名前は 256 文字以下にすることができます。
            // 画像は、productId パラメータと picName パラメータの値によって一意に識別されます。
            request.picName = "1000";
            // オプション。製品カテゴリの ID。
            // 1. 製品画像検索:カテゴリが指定されている場合、指定されたカテゴリが優先されます。カテゴリが指定されていない場合、システムはカテゴリを予測して選択します。システムによって選択されたカテゴリはレスポンスに含まれます。
            // 2. 汎用画像検索:カテゴリが指定されているかどうかに関係なく、カテゴリ ID は 88888888 に設定されます。
            request.categoryId = 3;
            // オプション。返されるエントリの数。有効な値:1 ~ 100。デフォルト値:10。
            request.num =10;
            // オプション。返される最初のエントリの序数。有効な値:0 ~ 499。デフォルト値:0。
            request.start =0;
            // オプション。フィルタ条件。
            // 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 {
                SearchImageByNameResponse response = client.searchImageByName(request);
                System.out.println(response.getBody().requestId);
                System.out.println(response.getBody().picInfo.categoryId);
                System.out.println(response.getBody().picInfo.region);
                List<SearchImageByNameResponseBody.SearchImageByNameResponseBodyAuctions> auctions = response.getBody().getAuctions();
                for(SearchImageByNameResponseBody.SearchImageByNameResponseBodyAuctions auction:auctions) {    
                    System.out.println(auction.categoryId + " " + auction.picName + " " 
                        + auction.productId + " " + auction.customContent + " " + auction.score + " " 
                        + auction.strAttr + " " + auction.intAttr);
                }
            } catch (TeaException e) {
                System.out.println(e.getCode());
                System.out.println(e.getData());
                System.out.println(e.getMessage());
                e.printStackTrace();
            }
        }
    }
  • サンプルレスポンス

    8F2441C8-EA05-461B-A4AC-5F5DE25FAC21
    3
    null
    3 1000 test this is a simple test 1.0 test 56
                        

Delete

  • サンプルコード

    import com.aliyun.imagesearch20201214.Client;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.imagesearch20201214.models.DeleteImageRequest;
    import com.aliyun.imagesearch20201214.models.DeleteImageResponse;
    import com.aliyun.tea.TeaException;
    public class Delete {
        public static void main(String[] args) throws Exception {
            Config authConfig = 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 Secret をプロジェクトコードにハードコードしないことをお勧めします。ハードコードすると、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。
            // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されています。ビジネス要件に基づいて、設定ファイルに AccessKey ペアを保存することもできます。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "ap-southeast-1"; // Image Search インスタンスが存在するリージョンの ID に置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメータを ap-southeast-1 に設定します。
            authConfig.endpoint = "imagesearch.ap-southeast-1.aliyuncs.com"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを 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 インスタンスと同じリージョンにあるかどうかを確認してください。
            // authConfig.endpointType = "internal";  // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメータを指定し、値を internal に設定する必要があります。
            // authConfig.endpoint = "imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。
    
    
            Client client = new Client(authConfig);
            DeleteImageRequest request = new DeleteImageRequest();
            // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。
            request.instanceName = "XXXXXXXXXXXX";
            // isDeleteByFilter パラメータが false に設定されている場合は必須です。製品 ID は 512 文字以下にすることができます。
            // 1 つの製品 ID は複数の画像名に対応できます。このパラメータのみを指定し、picName パラメータを指定しない場合、レスポンスには削除されたすべての画像の名前が含まれます。
            request.productId = "test";
             // オプション。画像名。このパラメータを設定しない場合、システムは指定された製品 ID に対応するすべての画像を削除します。このパラメータを設定すると、システムは product_id パラメータと pic_name パラメータで指定された画像のみを削除します。
            request.picName = "1000";
            // オプション。値を true に設定すると、画像はフィルタによって削除されます。
            request.isDeleteByFilter=false;
            request.filter = "intattr3=xxx";
            try {
                DeleteImageResponse response = client.deleteImage(request);
                System.out.println(response.getBody().toMap());
            } catch (TeaException e) {
                System.out.println(e.getCode());
                System.out.println(e.getData());
                System.out.println(e.getMessage());
                e.printStackTrace();
            }
        }
    }

  • サンプルレスポンス

    {
      Message=success,
      RequestId=994A7095-09AA-127A-873B-A2279261605F,
      Data={
        PicNames=[
          82.png
        ]
      },
      Code=0,
      Success=true
    }

UpdateImage

  • サンプルコード

    import com.aliyun.imagesearch20201214.Client;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.imagesearch20201214.models.*;
    import com.aliyun.tea.TeaException;
    import com.aliyun.teautil.models.RuntimeOptions;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.util.List;
    public class UpdateImage {
        public static void main(String[] args) throws Exception {
            Config authConfig = 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 Secret をプロジェクトコードにハードコードしないことをお勧めします。ハードコードすると、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。
            // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されています。ビジネス要件に基づいて、設定ファイルに AccessKey ペアを保存することもできます。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "ap-southeast-1"; // Image Search インスタンスが存在するリージョンの ID に置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメータを ap-southeast-1 に設定します。
            authConfig.endpoint = "imagesearch.ap-southeast-1.aliyuncs.com"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを 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 インスタンスと同じリージョンにあるかどうかを確認してください。
            // authConfig.endpointType = "internal";  // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメータを指定し、値を internal に設定する必要があります。
            // authConfig.endpoint = "imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。
    
    
            Client client = new Client(authConfig);
            UpdateImageRequest request = new UpdateImageRequest();
            // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。
            request.instanceName = "XXXXXXXXX";
            // 必須。製品の ID。製品 ID は変更できません。
            request.setProductId("1");
            // 必須。画像名。画像名は変更できません。
            request.setPicName("1");
            // オプション。INT 型の属性。この属性を使用して、画像検索中に画像をフィルタリングできます。このパラメータを指定すると、レスポンスにはこのパラメータとその値が含まれます。
            request.setIntAttr(1);
            // オプション。STRING 型の属性。値は 128 文字以下にすることができます。この属性を使用して、画像検索中に画像をフィルタリングできます。このパラメータを指定すると、レスポンスにはこのパラメータとその値が含まれます。
            request.setStrAttr("test");
            // オプション。ユーザー定義のコンテンツ。値は 4,096 文字以下にすることができます。
            request.setCustomContent("This is a sample description");
            UpdateImageResponse response = client.updateImage(request);
            System.out.println("requestId: " + response.getBody().requestId + ". success: " + response.getBody().success + ". message: " + response.getBody().message);     
        }
    }

  • サンプルレスポンス

    requestId: AB8AA177-89AB-14D5-BEE0-293C32D5C43A. success: true. message: null

Detail

  • サンプルコード

    import com.aliyun.imagesearch20201214.Client;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.imagesearch20201214.models.*;
    import com.aliyun.tea.TeaException;
    import com.aliyun.teautil.models.RuntimeOptions;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.util.List;
    public class Detail {
        public static void main(String[] args) throws Exception {
            Config authConfig = 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 Secret をプロジェクトコードにハードコードしないことをお勧めします。ハードコードすると、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。
            // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されています。ビジネス要件に基づいて、設定ファイルに AccessKey ペアを保存することもできます。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "ap-southeast-1"; // Image Search インスタンスが存在するリージョンの ID に置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメータを ap-southeast-1 に設定します。
            authConfig.endpoint = "imagesearch.ap-southeast-1.aliyuncs.com"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを 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 インスタンスと同じリージョンにあるかどうかを確認してください。
            // authConfig.endpointType = "internal";  // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメータを指定し、値を internal に設定する必要があります。
            // authConfig.endpoint = "imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。
    
    
            Client client = new Client(authConfig);
            DetailRequest request = new DetailRequest();
            // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。
            request.instanceName = "XXXXXXXXX";
            DetailResponse detail = client.detail(request);
            System.out.println(detail.getBody().toMap());  
        }
    }

  • サンプルレスポンス

    {
      RequestId=046913C5-942A-1DD2-959F-7CECD790ADB2,
      Instance={
        UtcExpireTime=1649692800000,
        TotalCount=225320,
        UtcCreate=1633936585000,
        Capacity=250,
        Qps=5,
        ServiceType=0,
        Region=cn-shanghai,
        Name=xxxx
      },
      Success=true
    }

DumpMeta

  • サンプルコード

    import com.aliyun.imagesearch20201214.Client;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.imagesearch20201214.models.*;
    import com.aliyun.tea.TeaException;
    import com.aliyun.teautil.models.RuntimeOptions;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.util.List;
    public class DumpMeta {
        public static void main(String[] args) throws Exception {
            Config authConfig = 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 Secret をプロジェクトコードにハードコードしないことをお勧めします。ハードコードすると、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。
            // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されています。ビジネス要件に基づいて、設定ファイルに AccessKey ペアを保存することもできます。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "ap-southeast-1"; // Image Search インスタンスが存在するリージョンの ID に置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメータを ap-southeast-1 に設定します。
            authConfig.endpoint = "imagesearch.ap-southeast-1.aliyuncs.com"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを 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 インスタンスと同じリージョンにあるかどうかを確認してください。
            // authConfig.endpointType = "internal";  // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメータを指定し、値を internal に設定する必要があります。
            // authConfig.endpoint = "imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。
    
    
            Client client = new Client(authConfig);
            DumpMetaRequest request = new DumpMetaRequest();
            // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。
            request.instanceName = "XXXXXXXXX";
            DumpMetaResponse response = client.dumpMeta(request);
            System.out.println(response.getBody().toMap());  
        }
    }

  • サンプルレスポンス

    {
      RequestId=FC4191AA-1D5B-1001-9A70-18FBB2BD265B,
      Data={
        DumpMetaStatus=PROCESSING,
        Id=567
      },
      Success=true
    }

DumpMetaList

  • サンプルコード

    import com.aliyun.imagesearch20201214.Client;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.imagesearch20201214.models.*;
    import com.aliyun.tea.TeaException;
    import com.aliyun.teautil.models.RuntimeOptions;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.util.List;
    public class DumpMetaList {
        public static void main(String[] args) throws Exception {
            Config authConfig = 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 Secret をプロジェクトコードにハードコードしないことをお勧めします。ハードコードすると、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。
            // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されています。ビジネス要件に基づいて、設定ファイルに AccessKey ペアを保存することもできます。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "ap-southeast-1"; // Image Search インスタンスが存在するリージョンの ID に置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメータを ap-southeast-1 に設定します。
            authConfig.endpoint = "imagesearch.ap-southeast-1.aliyuncs.com"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを 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 インスタンスと同じリージョンにあるかどうかを確認してください。
            // authConfig.endpointType = "internal";  // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメータを指定し、値を internal に設定する必要があります。
            // authConfig.endpoint = "imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。
            
    
            Client client = new Client(authConfig);
            DumpMetaListRequest request = new DumpMetaListRequest();
            // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。
            request.instanceName = "XXXXXXXXX";
            // オプション。メタデータをエクスポートするために使用されるタスクの ID。
            request.setId(567L);
            // オプション。ページ番号。デフォルト値:1。
            request.setPageNumber(1);
            // オプション。1 ページあたりのエントリ数。デフォルト値:20。
            request.setPageSize(1);
            DumpMetaListResponse response = client.dumpMetaList(request);
            System.out.println(response.getBody().toMap()); 
        }
    }

  • サンプルレスポンス

    {
      RequestId=850DFBD9-A179-12FB-B193-2D08ACEA586B,
      Data={
        TotalCount=1,
        PageSize=1,
        PageNumber=1,
        DumpMetaList=[
          {
            Status=SUCCESS,
            Msg=success,
            MetaUrl=https://example.com/x?Expires=x,
            UtcCreate=1639969113000,
            UtcModified=1639969140000,
            Id=567,
            Code=0
          }
        ]
      }
    }

BatchTask

  • サンプルコード

    import com.aliyun.imagesearch20201214.Client;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.imagesearch20201214.models.*;
    import com.aliyun.tea.TeaException;
    import com.aliyun.teautil.models.RuntimeOptions;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.util.List;
    public class BatchTask {
        public static void main(String[] args) throws Exception {
            Config authConfig = 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 Secret をプロジェクトコードにハードコードしないことをお勧めします。ハードコードすると、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。
            // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されています。ビジネス要件に基づいて、設定ファイルに AccessKey ペアを保存することもできます。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "ap-southeast-1"; // Image Search インスタンスが存在するリージョンの ID に置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメータを ap-southeast-1 に設定します。
            authConfig.endpoint = "imagesearch.ap-southeast-1.aliyuncs.com"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを 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 インスタンスと同じリージョンにあるかどうかを確認してください。
            // authConfig.endpointType = "internal";  // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメータを指定し、値を internal に設定する必要があります。
            // authConfig.endpoint = "imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。
    
    
            Client client = new Client(authConfig);
            IncreaseInstanceRequest request = new IncreaseInstanceRequest();
            // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。
            request.instanceName = "XXXXXXXXX";
            // 必須。画像が Object Storage Service (OSS) バケットに保存されている場合は、バケット名を入力します。
            request.setBucketName("bucketName");
            // 必須。画像が保存されているパス。パスはスラッシュ (/) で始まり、スラッシュ (/) で終わることはできません。
            // 画像が保存されているパスに increment.meta という名前のファイルを作成します。詳細については、ユーザーガイドの「バッチ操作の実行」を参照してください。
            request.setPath("/public/xxx");
            // オプション。API 呼び出しが成功した場合のコールバック URL。URL は http:// または https:// で始まる必要があります。
            request.setCallbackAddress("http://xxx/xxx");
            IncreaseInstanceResponse response = client.increaseInstance(request);
            System.out.println(response.getBody().toMap()); 
        }
    }

  • サンプルレスポンス

    {
      RequestId=F9BAD635-3031-1EBB-BE9E-E9FCB318A28C,
      Data={
        IncrementStatus=PROCESSING,
        Id=1470
      },
      Success=true
    }
                        

BatchTaskList

  • サンプルコード

    import com.aliyun.imagesearch20201214.Client;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.imagesearch20201214.models.*;
    import com.aliyun.tea.TeaException;
    import com.aliyun.teautil.models.RuntimeOptions;
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.util.List;
    public class BatchTaskList {
        public static void main(String[] args) throws Exception {
            Config authConfig = 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 Secret をプロジェクトコードにハードコードしないことをお勧めします。ハードコードすると、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。
            // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されています。ビジネス要件に基づいて、設定ファイルに AccessKey ペアを保存することもできます。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "ap-southeast-1"; // Image Search インスタンスが存在するリージョンの ID に置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメータを ap-southeast-1 に設定します。
            authConfig.endpoint = "imagesearch.ap-southeast-1.aliyuncs.com"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを 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 インスタンスと同じリージョンにあるかどうかを確認してください。
            // authConfig.endpointType = "internal";  // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointType パラメータを指定し、値を internal に設定する必要があります。
            // authConfig.endpoint = "imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。
    
    
            Client client = new Client(authConfig);
            IncreaseListRequest request = new IncreaseListRequest();
            // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。
            request.instanceName = "XXXXXXXXX";
            // オプション。バッチタスクの ID。
            request.setId(1470L);
            // オプション。OSS バケットの名前。
            request.setBucketName("BucketName");
            // オプション。OSS バケットへのパス。
            request.setPath("/localization/xxxx");
            // オプション。ページ番号。デフォルト値:1。
            request.setPageNumber(1);
            // オプション。1 ページあたりのエントリ数。デフォルト値:20。
            request.setPageSize(1);
            IncreaseListResponse response = client.increaseList(request);
            System.out.println(response.getBody().toMap()); 
        }
    }

  • サンプルレスポンス

    {
      RequestId=56E7E6CC-64AB-17CA-A7CD-1948FB953B8C,
      Data={
        TotalCount=1,
        PageSize=1,
        PageNumber=1,
        Increments={
          Instance=[
            {
              Msg=success,
              Status=NORMAL,
              Path=/xx/xx,
              BucketName=bucketName,
              UtcCreate=1639107872000,
              ErrorUrl=https://example.com/xxx?Expires=1670661540&xxx=xx,
              UtcModified=1639125540000,
              Id=1464,
              CallbackAddress=null,
              Code=0
            }
          ]
        }
      }
    }

CompareSimilarByImage

  • サンプルコード

    package com.aliyun.sample;
    
    import com.aliyun.imagesearch20201214.Client;
    import com.aliyun.imagesearch20201214.models.CompareSimilarByImageAdvanceRequest;
    import com.aliyun.imagesearch20201214.models.CompareSimilarByImageResponse;
    import com.aliyun.tea.TeaException;
    import com.aliyun.teautil.models.RuntimeOptions;
    import com.aliyun.teaopenapi.models.Config;
    
    import java.io.FileInputStream;
    import java.io.InputStream;
    
    public class compareSimilarByImage {
        public static void main(String[] args) throws Exception {
            Config authConfig = 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 Secret をプロジェクトコードにハードコードしないことをお勧めします。ハードコードすると、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが危険にさらされる可能性があります。
            // この例では、AccessKey ID と AccessKey Secret は環境変数として保存されています。ビジネス要件に基づいて、設定ファイルに AccessKey ペアを保存することもできます。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";       
            authConfig.regionId = "ap-southeast-1"; // Image Search インスタンスが存在するリージョンの ID に置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、regionId パラメータを ap-southeast-1 に設定します。
            authConfig.endpoint = "imagesearch.ap-southeast-1.aliyuncs.com"; // Image Search インスタンスが存在するリージョンのエンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを 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 インスタンスと同じリージョンにあるかどうかを確認してください。
            // authConfig.endpointType = "internal";  // VPC エンドポイントを使用して Image Search API を呼び出す場合は、endpointパラメータを指定し、値を internal に設定する必要があります。
            // authConfig.endpoint = "imagesearch-vpc.ap-southeast-1.aliyuncs.com"; // Image Search API の呼び出しに使用される VPC エンドポイント。Image Search インスタンスが存在するリージョンの VPC エンドポイントに置き換えてください。たとえば、Image Search インスタンスがシンガポールにある場合は、endpoint パラメータを imagesearch-vpc.ap-southeast-1.aliyuncs.com に設定します。
    
    
            Client client = new Client(authConfig);
            CompareSimilarByImageAdvanceRequest compareSimilarByImageAdvanceRequest = new CompareSimilarByImageAdvanceRequest();
            // 必須。Image Search インスタンスの名前。インスタンス ID ではなくインスタンス名を入力してください。Image Search インスタンスを購入した後、Image Search コンソールのインスタンスリストページでインスタンス名を確認できます。
            compareSimilarByImageAdvanceRequest.setInstanceName("XXXXXXXXX");
            String primaryName = "D:/1.jpg";
            String secondaryName = "D:/2.jpg";
            try {
    
                // 以下のサンプルコードは、画像 URL を指定する方法の例を示しています。
                // String primaryUrl = "https://www.example.com/1.jpg";
                // String secondaryUrl = "https://www.example.com/2.jpg";
                // compareSimilarByImageAdvanceRequest.setPrimaryPicContentObject(new URL(primaryUrl).openStream());
                // compareSimilarByImageAdvanceRequest.setSecondaryPicContentObject(new URL(secondaryUrl).openStream());
    
    
                // 以下のサンプルコードは、画像ファイルをアップロードする方法の例を示しています。
                InputStream primaryInputStream = new FileInputStream(primaryName);
                InputStream secondaryInputStream = new FileInputStream(secondaryName);
                compareSimilarByImageAdvanceRequest.setPrimaryPicContentObject(primaryInputStream);
                compareSimilarByImageAdvanceRequest.setSecondaryPicContentObject(secondaryInputStream);
                RuntimeOptions runtimeOptions = new RuntimeOptions();
                CompareSimilarByImageResponse compareSimilarByImageResponse = client.compareSimilarByImageAdvance(compareSimilarByImageAdvanceRequest, runtimeOptions);
                System.out.println(compareSimilarByImageResponse.getBody().toMap());
            } catch (TeaException e) {
                System.out.println(e.getCode());
                System.out.println(e.getData());
                System.out.println(e.getMessage());
                e.printStackTrace();
            }
          }
       }
    }
    

  • サンプルレスポンス

    {
      Msg=success, 
      Score=1.0, 
      RequestId=5C0F29D6-D5DA-1068-9A6A-F68B07F8E02F, 
      Code=200, 
      Success=true
    }