全部產品
Search
文件中心

Image Search:Java SDK

更新時間:Aug 24, 2024

本文介紹Image Search服務Java SDK的使用方法及樣本。

介面列表

介面名稱

介面說明

Add

增加圖片。

SearchImageByPic

使用圖片進行搜尋。

SearchImageByName

指定名稱,使用已入庫的圖片進行搜尋。

Delete

刪除圖片。

UpdateImage

修改圖片。

Detail

查詢執行個體資訊。

DumpMeta

元資訊匯出任務。

DumpMetaList

元資訊匯出工作清單。

BatchTask

批量任務。

BatchTaskList

批量工作清單。

準備工作

  • 在安裝和使用阿里雲SDK前,確保您已經註冊阿里雲帳號並產生存取金鑰(AccessKey)。詳情請參見建立AccessKey

  • 將SDK添加到專案中

    引入ImageSearch SDK依賴,通過Maven二方庫依賴的方式將ImageSearch的SDK加入到自己的專案中。

      <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>imagesearch20201214</artifactId>
            <version>4.0.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();
            // 建立AK/SK參考:建立AccessKey:https://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
            // 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
            // 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
            // 本樣本以將AccessKey ID和AccessKey Secret儲存在環境變數為例說明。您也可以根據業務需要,儲存到設定檔裡。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "cn-shanghai"; // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為杭州,則更換為regionId="cn-hangzhou"
            authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買執行個體的地區,例如購買的是杭州地區,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
            
            //以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是華東2(上海),那麼您的ECS或資源也必須在華東2(上海)才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // authConfig.endpointType = "internal";  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
            
            Client client = new Client(authConfig);
            AddImageAdvanceRequest request = new AddImageAdvanceRequest();
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過 上雲層管控台執行個體資訊一欄查看
            request.instanceName = "XXXXXXXXXXX";
            // 必填,商品id,最多支援 512個字元。
            // 一個商品可有多張圖片。
            request.productId = "test";
            // 必填,圖片名稱,最多支援 512個字元。
            // 1. ProductId + PicName唯一確定一張圖片。
            // 2. 如果多次添加圖片具有相同的ProductId + PicName,以最後一次添加為準,前面添加的圖片將被覆蓋。
            request.picName = "1000";
            // 選填,圖片類目。
            // 1. 對於商品搜尋:若設定類目,則以設定的為準;若不設定類目,將由系統進行類目預測,預測的類目結果可在Response中擷取 。
            // 2. 對於通用搜尋:不論是否設定類目,系統會將類目設定為88888888。
            request.categoryId = 3;
            // 選填,使用者自訂的內容,最多支援4096個字元。
            // 查詢時會返回該欄位。例如可添加圖片的描述等文本。
            request.customContent = "this is a simple test";
            // 選填,整數類型屬性,可用於查詢時過濾,查詢時會返回該欄位。
            //  例如不同的網站的圖片/不同使用者的圖片,可以設定不同的IntAttr,查詢時通過過濾來達到隔離的目的
            request.intAttr = 56;
            // 選填,字串類型屬性,最多支援128個字元。可用於查詢時過濾,查詢時會返回該欄位。
            request.strAttr = "test";
            // 選填,是否需要進行主體識別,預設為true。
            // 1.為true時,由系統進行主體識別,以識別的主體進行搜尋,主體識別結果可在Response中擷取。
            // 2.為false時,則不進行主體識別,以整張圖進行搜尋。
            request.crop = true;
            // 選填,圖片的主體地區,格式為 x1,x2,y1,y2, 其中 x1,y1 是左上方的點,x2,y2是右下角的點。設定的region 地區不要超過圖片的邊界。
            // 若使用者佈建了Region,則不論Crop參數為何值,都將以使用者輸入Region進行搜尋。
            request.region = "167,467,221,407";
            RuntimeOptions runtimeOptions = new RuntimeOptions();
            String picName = "D:/123.jpg";      
            try {            
               // 圖片內容,最多支援4MB大小圖片以及5s的傳輸等待時間。當前僅支援PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、PPM格式圖片;
               // 對於商品、商標、通用圖片搜尋,圖片長和寬的像素必須都大於等於100且小於等於4096;
               // 對於布料搜尋,圖片長和寬的像素必須都大於等於448且小於等於4096;
               // 映像中不能帶有旋轉資訊
    
               // 下方注釋代碼是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();
            // 建立AK/SK參考:建立AccessKey:https://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
            // 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
            // 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
            // 本樣本以將AccessKey ID和AccessKey Secret儲存在環境變數為例說明。您也可以根據業務需要,儲存到設定檔裡。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "cn-shanghai"; // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為杭州,則更換為regionId="cn-hangzhou"
            authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買執行個體的地區,例如購買的是杭州地區,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
            
            //以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是華東2(上海),那麼您的ECS或資源也必須在華東2(上海)才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // authConfig.endpointType = "internal";  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
    
            Client client = new Client(authConfig);
            SearchImageByPicAdvanceRequest request = new SearchImageByPicAdvanceRequest();
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過上雲層管控台執行個體資訊一欄查看
            request.instanceName = "XXXXXXXXX";
            // 選填,商品類目。
            // 1. 對於商品搜尋:若設定類目,則以設定的為準;若不設定類目,將由系統進行類目預測,預測的類目結果可在Response中擷取 。
            // 2. 對於通用搜尋:不論是否設定類目,系統會將類目設定為88888888。
            request.categoryId = 3;
            // 選填,返回結果的數目。取值範圍:1-100。預設值:10。
            request.num = 10;
            // 選填,返回結果的起始位置。取值範圍:0-499。預設值:0。
            request.start = 0;
            // 選填,是否需要進行主體識別,預設為true。
            // 1.為true時,由系統進行主體識別,以識別的主體進行搜尋,主體識別結果可在Response中擷取。
            // 2.為false時,則不進行主體識別,以整張圖進行搜尋。
            request.crop = true;
            // 選填,圖片的主體地區,格式為 x1,x2,y1,y2, 其中 x1,y1 是左上方的點,x2,y2是右下角的點。設定的region 地區不要超過圖片的邊界。
            // 若使用者佈建了Region,則不論Crop參數為何值,都將以使用者輸入Region進行搜尋。
            request.region="167,467,221,407";
            // 選填,過濾條件
            // int_attr支援的操作符有>、>=、<、<=、=,str_attr支援的操作符有=和!=,多個條件之支援AND和OR進行串連。
            // 樣本:
            //  1. 根據IntAttr過濾結果,int_attr>=100
            //  2. 根據StrAttr過濾結果,str_attr!="value1"
            //  3. 根據IntAttr和StrAttr聯合過濾結果,int_attr=1000 AND str_attr="value1"
            request.filter="int_attr=56 AND str_attr=\"test\"";
            String picName = "D:/123.jpg";
            // 圖片內容,最多支援 4MB大小圖片以及5s的傳輸等待時間。當前僅支援PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、PPM格式圖片;
            // 對於商品、商標、通用圖片搜尋,圖片長和寬的像素必須都大於等於100且小於等於4096;
            // 對於布料搜尋,圖片長和寬的像素必須都大於等於448且小於等於4096;
            // 映像中不能帶有旋轉資訊;
            request.num = 10;
            request.start = 0;
            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("多主體資訊");
                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
    多主體資訊
    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();
            // 建立AK/SK參考:建立AccessKey:https://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
            // 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
            // 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
            // 本樣本以將AccessKey ID和AccessKey Secret儲存在環境變數為例說明。您也可以根據業務需要,儲存到設定檔裡。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "cn-shanghai"; // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為杭州,則更換為regionId="cn-hangzhou"
            authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買執行個體的地區,例如購買的是杭州地區,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
            
            //以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是華東2(上海),那麼您的ECS或資源也必須在華東2(上海)才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // authConfig.endpointType = "internal";  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
    
            Client client = new Client(authConfig);
            SearchImageByNameRequest request = new SearchImageByNameRequest();
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過 上雲層管控台執行個體資訊一欄查看
            request.instanceName = "XXXXXXXXX";
            // 必填,商品id,最多支援 512個字元。
            // 一個商品可有多張圖片。
            request.productId = "test";
            // 必填,圖片名稱,最多支援 512個字元。
            // ProductId + PicName唯一確定一張圖片。
            request.picName = "1000";
            // 選填,商品類目。
            // 1. 對於商品搜尋:若設定類目,則以設定的為準;若不設定類目,將由系統進行類目預測,預測的類目結果可在Response中擷取 。
            // 2. 對於通用搜尋:不論是否設定類目,系統會將類目設定為88888888。
            request.categoryId = 3;
            // 選填,返回結果的數目。取值範圍:1-100。預設值:10。
            request.num =10;
            // 選填,返回結果的起始位置。取值範圍:0-499。預設值:0。
            request.start =0;
            // 選填,過濾條件
            // int_attr支援的操作符有>、>=、<、<=、=,str_attr支援的操作符有=和!=,多個條件之支援AND和OR進行串連。
            // 樣本:
            //  1. 根據IntAttr過濾結果,int_attr>=100
            //  2. 根據StrAttr過濾結果,str_attr!="value1"
            //  3. 根據IntAttr和StrAttr聯合過濾結果,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();
            // 建立AK/SK參考:建立AccessKey:https://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
            // 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
            // 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
            // 本樣本以將AccessKey ID和AccessKey Secret儲存在環境變數為例說明。您也可以根據業務需要,儲存到設定檔裡。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "cn-shanghai"; // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為杭州,則更換為regionId="cn-hangzhou"
            authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買執行個體的地區,例如購買的是杭州地區,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
            
            //以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是華東2(上海),那麼您的ECS或資源也必須在華東2(上海)才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // authConfig.endpointType = "internal";  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
    
            Client client = new Client(authConfig);
            DeleteImageRequest request = new DeleteImageRequest();
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過 上雲層管控台執行個體資訊一欄查看
            request.instanceName = "XXXXXXXXXXXX";
            // 必填,商品id,最多支援 512個字元。
            // 一個商品可有多張圖片。僅指定該參數不指定picName,結果可返回刪除的所有picname內容
            request.productId = "test";
             // 選填,圖片名稱。若不指定本參數,則刪除ProductId下所有圖片;若指定本參數,則刪除ProductId+PicName指定的圖片。
            request.picName = "1000";
            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();
            // 建立AK/SK參考:建立AccessKey:https://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
            // 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
            // 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
            // 本樣本以將AccessKey ID和AccessKey Secret儲存在環境變數為例說明。您也可以根據業務需要,儲存到設定檔裡。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "cn-shanghai"; // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為杭州,則更換為regionId="cn-hangzhou"
            authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買執行個體的地區,例如購買的是杭州地區,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
            
            //以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是華東2(上海),那麼您的ECS或資源也必須在華東2(上海)才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // authConfig.endpointType = "internal";  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
    
            Client client = new Client(authConfig);
            UpdateImageRequest request = new UpdateImageRequest();
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過 上雲層管控台執行個體資訊一欄查看
            request.instanceName = "XXXXXXXXX";
            // 必填,商品ID不可修改。
            request.setProductId("1");
            // 必填,圖片名稱不可修改。
            request.setPicName("1");
            // 選填,整數類型屬性,可用於查詢時過濾,查詢時會返回該欄位。
            request.setIntAttr(1);
            // 選填,字串類型屬性,最多支援128個字元。可用於查詢時過濾,查詢時會返回該欄位。
            request.setStrAttr("test");
            // 選填,使用者自訂的內容,最多支援4096個字元。
            request.setCustomContent("這是一個測試說明");
            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();
            // 建立AK/SK參考:建立AccessKey:https://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
            // 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
            // 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
            // 本樣本以將AccessKey ID和AccessKey Secret儲存在環境變數為例說明。您也可以根據業務需要,儲存到設定檔裡。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "cn-shanghai"; // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為杭州,則更換為regionId="cn-hangzhou"
            authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買執行個體的地區,例如購買的是杭州地區,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
            
            //以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是華東2(上海),那麼您的ECS或資源也必須在華東2(上海)才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // authConfig.endpointType = "internal";  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
    
            Client client = new Client(authConfig);
            DetailRequest request = new DetailRequest();
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過 上雲層管控台執行個體資訊一欄查看
            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();
            // 建立AK/SK參考:建立AccessKey:https://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
            // 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
            // 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
            // 本樣本以將AccessKey ID和AccessKey Secret儲存在環境變數為例說明。您也可以根據業務需要,儲存到設定檔裡。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "cn-shanghai"; // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為杭州,則更換為regionId="cn-hangzhou"
            authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買執行個體的地區,例如購買的是杭州地區,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
            
            //以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是華東2(上海),那麼您的ECS或資源也必須在華東2(上海)才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // authConfig.endpointType = "internal";  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
    
            Client client = new Client(authConfig);
            DumpMetaRequest request = new DumpMetaRequest();
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過 上雲層管控台執行個體資訊一欄查看
            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();
            // 建立AK/SK參考:建立AccessKey:https://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
            // 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
            // 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
            // 本樣本以將AccessKey ID和AccessKey Secret儲存在環境變數為例說明。您也可以根據業務需要,儲存到設定檔裡。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "cn-shanghai"; // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為杭州,則更換為regionId="cn-hangzhou"
            authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買執行個體的地區,例如購買的是杭州地區,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
            
            //以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是華東2(上海),那麼您的ECS或資源也必須在華東2(上海)才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // authConfig.endpointType = "internal";  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
    
            Client client = new Client(authConfig);
            DumpMetaListRequest request = new DumpMetaListRequest();
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過 上雲層管控台執行個體資訊一欄查看,Image Search執行個體名稱。
            request.instanceName = "XXXXXXXXX";
            // 選填,中繼資料匯出任務id
            request.setId(567L);
            // 選填,返回結果起始位置,預設1
            request.setPageNumber(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();
            // 建立AK/SK參考:建立AccessKey:https://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
            // 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
            // 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
            // 本樣本以將AccessKey ID和AccessKey Secret儲存在環境變數為例說明。您也可以根據業務需要,儲存到設定檔裡。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "cn-shanghai"; // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為杭州,則更換為regionId="cn-hangzhou"
            authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買執行個體的地區,例如購買的是杭州地區,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
            
            //以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是華東2(上海),那麼您的ECS或資源也必須在華東2(上海)才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // authConfig.endpointType = "internal";  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
    
            Client client = new Client(authConfig);
            IncreaseInstanceRequest request = new IncreaseInstanceRequest();
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過 上雲層管控台執行個體資訊一欄查看
            request.instanceName = "XXXXXXXXX";
            // 必填,oss 中 bucket名稱
            request.setBucketName("bucketName");
            // 必填,路徑,必須 / 開頭, 非 / 結尾
            // 此路徑下需要提前準備好 increment.meta 檔案,可參考,使用者指南下的大量操作文檔。
            request.setPath("/public/xxx");
            // 選填,請求成功回調地址,http(s)://
            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();
            // 建立AK/SK參考:建立AccessKey:https://www.alibabacloud.com/help/zh/resource-access-management/latest/accesskey-pairs-create-an-accesskey-pair-for-a-ram-user
            // 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
            // 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
            // 本樣本以將AccessKey ID和AccessKey Secret儲存在環境變數為例說明。您也可以根據業務需要,儲存到設定檔裡。
            authConfig.accessKeyId = System.getenv("CC_AK_ENV");
            authConfig.accessKeySecret = System.getenv("CC_SK_ENV");
            authConfig.type = "access_key";
            authConfig.regionId = "cn-shanghai"; // 請您更換成您購買執行個體的地區,例如您購買的執行個體地區為杭州,則更換為regionId="cn-hangzhou"
            authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買執行個體的地區,例如購買的是杭州地區,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
            
            //以下為內網(VPC)訪問方式
            // 說明:內網(VPC)訪問:僅限同地區ECS或資源的訪問,例如您購買的Image Search執行個體是華東2(上海),那麼您的ECS或資源也必須在華東2(上海)才能通過內網VPC地址訪問圖搜服務,否則會調用不通,如果遇到調用不通,請先檢查您的ECS或資源與Image Search是否在同一個地區。
            // authConfig.endpointType = "internal";  // 如果是內網訪問Image Search服務,則endpointType為必填項,值統一為"internal"
            // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內網訪問(VPC)地址,請您更換為您購買執行個體的地區,例如您購買執行個體的地區為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
            
    
            Client client = new Client(authConfig);
            IncreaseListRequest request = new IncreaseListRequest();
            // 必填,Image Search執行個體名稱。注意是執行個體名稱不是執行個體ID。購買後通過 上雲層管控台執行個體資訊一欄查看
            request.instanceName = "XXXXXXXXX";
            // 選填,批量任務id
            request.setId(1470L);
            // 選填,查詢oss 的 BucketName
            request.setBucketName("BucketName");
            // 選填,查詢oss 的 path 路徑
            request.setPath("/localization/xxxx");
            // 選填,返回結果起始位置,預設1
            request.setPageNumber(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
            }
          ]
        }
      }
    }