Java SDK
更新時間:
本文介紹圖像搜索服務(wù)Java SDK的使用方法及示例。
說明
如需了解更多產(chǎn)品詳情和獲取技術(shù)支持,請單擊在線咨詢或通過釘釘群(35035130)聯(lián)系我們。
接口列表
接口名稱 | 接口說明 |
Add | 增加圖片。 |
SearchImageByPic | 使用圖片進行搜索。 |
SearchImageByName | 指定名稱,使用已入庫的圖片進行搜索。 |
Delete | 刪除圖片。 |
UpdateImage | 修改圖片。 |
Detail | 查詢實例信息。 |
DumpMeta | 元信息導出任務(wù)。 |
DumpMetaList | 元信息導出任務(wù)列表。 |
BatchTask | 批量任務(wù)。 |
BatchTaskList | 批量任務(wù)列表。 |
準備工作
在安裝和使用阿里云SDK前,確保您已經(jīng)注冊阿里云賬號并生成訪問密鑰(AccessKey)。詳情請參見創(chuàng)建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.net.URL; import java.io.FileInputStream; import java.io.InputStream; public class Add { public static void main(String[] args) throws Exception { Config authConfig = new Config(); // 創(chuàng)建AK/SK參考:創(chuàng)建AccessKey:http://bestwisewords.com/document_detail/116401.htm // 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。 // 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 // 本示例以將AccessKey ID和AccessKey Secret保存在環(huán)境變量為例說明。您也可以根據(jù)業(yè)務(wù)需要,保存到配置文件里。 authConfig.accessKeyId = System.getenv("CC_AK_ENV"); authConfig.accessKeySecret = System.getenv("CC_SK_ENV"); authConfig.type = "access_key"; authConfig.regionId = "cn-shanghai"; // 請您更換成您購買實例的區(qū)域,例如您購買的實例區(qū)域為杭州,則更換為regionId="cn-hangzhou" authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買實例的區(qū)域,例如購買的是杭州區(qū)域,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com" //以下為內(nèi)網(wǎng)(VPC)訪問方式 // 說明:內(nèi)網(wǎng)(VPC)訪問:僅限同區(qū)域ECS或資源的訪問,例如您購買的圖像搜索實例是華東2(上海),那么您的ECS或資源也必須在華東2(上海)才能通過內(nèi)網(wǎng)VPC地址訪問圖搜服務(wù),否則會調(diào)用不通,如果遇到調(diào)用不通,請先檢查您的ECS或資源與圖像搜索是否在同一個區(qū)域。 // authConfig.endpointType = "internal"; // 如果是內(nèi)網(wǎng)訪問圖像搜索服務(wù),則endpointType為必填項,值統(tǒng)一為"internal" // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內(nèi)網(wǎng)訪問(VPC)地址,請您更換為您購買實例的區(qū)域,例如您購買實例的區(qū)域為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com" Client client = new Client(authConfig); AddImageAdvanceRequest request = new AddImageAdvanceRequest(); // 必填,圖像搜索實例名稱。注意是實例名稱不是實例ID。購買后通過 上云層管控臺實例信息一欄查看 request.instanceName = "XXXXXXXXXXX"; // 必填,商品id,最多支持512個字符。 // 一個商品可有多張圖片。 request.productId = "test"; // 必填,圖片名稱,最多支持512個字符。 // 1. ProductId + PicName唯一確定一張圖片。 // 2. 如果多次添加圖片具有相同的ProductId + PicName,以最后一次添加為準,前面添加的圖片將被覆蓋。 request.picName = "cloth.jpg"; // 選填,圖片類目。 // 1. 對于商品搜索:若設(shè)置類目,則以設(shè)置的為準;若不設(shè)置類目,將由系統(tǒng)進行類目預(yù)測,預(yù)測的類目結(jié)果可在Response中獲取 。 // 2. 對于布料、商標、通用搜索:不論是否設(shè)置類目,系統(tǒng)會將類目設(shè)置為88888888。 request.categoryId = 3; // 選填,用戶自定義的內(nèi)容,最多支持4096個字符。 // 查詢時會返回該字段。例如可添加圖片的描述等文本。 request.customContent = "this is a simple test"; // 選填,整數(shù)類型屬性,可用于查詢時過濾,查詢時會返回該字段。 // 例如不同的站點的圖片/不同用戶的圖片,可以設(shè)置不同的IntAttr,查詢時通過過濾來達到隔離的目的 request.intAttr = 56; // 選填,字符串類型屬性,最多支持128個字符??捎糜诓樵儠r過濾,查詢時會返回該字段。 request.strAttr = "test"; // 選填,是否需要進行主體識別,默認為true。 // 1.為true時,由系統(tǒng)進行主體識別,以識別的主體進行搜索,主體識別結(jié)果可在Response中獲取。 // 2.為false時,則不進行主體識別,以整張圖進行搜索。 // 3.對于布料圖片搜索,此參數(shù)會被忽略,系統(tǒng)會以整張圖進行搜索。 request.crop = true; // 選填,圖片的主體區(qū)域,格式為 x1,x2,y1,y2, 其中 x1,y1 是左上角的點,x2,y2是右下角的點。設(shè)置的region 區(qū)域不要超過圖片的邊界。 // 若用戶設(shè)置了Region,則不論Crop參數(shù)為何值,都將以用戶輸入Region進行搜索。 // 對于布料圖片搜索,此參數(shù)會被忽略,系統(tǒng)會以整張圖進行搜索。 request.region = "167,467,221,407"; RuntimeOptions runtimeOptions = new RuntimeOptions(); String picName = "D:/123.jpg"; try { // 圖片內(nèi)容,最多支持 4MB大小圖片以及5s的傳輸?shù)却龝r間。當前僅支持PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、PPM格式圖片; // 對于商品、商標、通用圖片搜索,圖片長和寬的像素必須都大于等于100且小于等于4096; // 對于布料搜索,圖片長和寬的像素必須都大于等于448且小于等于4096; // 圖像中不能帶有旋轉(zhuǎn)信息 // 下方注釋代碼是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(); } } }
結(jié)果示例
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(); // 創(chuàng)建AK/SK參考:創(chuàng)建AccessKey:http://bestwisewords.com/document_detail/116401.htm // 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。 // 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 // 本示例以將AccessKey ID和AccessKey Secret保存在環(huán)境變量為例說明。您也可以根據(jù)業(yè)務(wù)需要,保存到配置文件里。 authConfig.accessKeyId = System.getenv("CC_AK_ENV"); authConfig.accessKeySecret = System.getenv("CC_SK_ENV"); authConfig.type = "access_key"; authConfig.regionId = "cn-shanghai"; // 請您更換成您購買實例的區(qū)域,例如您購買的實例區(qū)域為杭州,則更換為regionId="cn-hangzhou" authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買實例的區(qū)域,例如購買的是杭州區(qū)域,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com" //以下為內(nèi)網(wǎng)(VPC)訪問方式 // 說明:內(nèi)網(wǎng)(VPC)訪問:僅限同區(qū)域ECS或資源的訪問,例如您購買的圖像搜索實例是華東2(上海),那么您的ECS或資源也必須在華東2(上海)才能通過內(nèi)網(wǎng)VPC地址訪問圖搜服務(wù),否則會調(diào)用不通,如果遇到調(diào)用不通,請先檢查您的ECS或資源與圖像搜索是否在同一個區(qū)域。 // authConfig.endpointType = "internal"; // 如果是內(nèi)網(wǎng)訪問圖像搜索服務(wù),則endpointType為必填項,值統(tǒng)一為"internal" // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內(nèi)網(wǎng)訪問(VPC)地址,請您更換為您購買實例的區(qū)域,例如您購買實例的區(qū)域為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com" Client client = new Client(authConfig); SearchImageByPicAdvanceRequest request = new SearchImageByPicAdvanceRequest(); // 必填,圖像搜索實例名稱。注意是實例名稱不是實例ID。購買后通過 上云層管控臺實例信息一欄查看 request.instanceName = "XXXXXXXXX"; // 選填,商品類目。 // 1. 對于商品搜索:若設(shè)置類目,則以設(shè)置的為準;若不設(shè)置類目,將由系統(tǒng)進行類目預(yù)測,預(yù)測的類目結(jié)果可在Response中獲取 。 // 2. 對于布料、商標、通用搜索:不論是否設(shè)置類目,系統(tǒng)會將類目設(shè)置為88888888。 request.categoryId = 3; // 選填,返回結(jié)果的數(shù)目。取值范圍:1-100。默認值:10。 request.num = 10; // 選填,返回結(jié)果的起始位置。取值范圍:0-499。默認值:0。 request.start = 0; // 選填,是否需要進行主體識別,默認為true。 // 1.為true時,由系統(tǒng)進行主體識別,以識別的主體進行搜索,主體識別結(jié)果可在Response中獲取。 // 2.為false時,則不進行主體識別,以整張圖進行搜索。 // 3.對于布料圖片搜索,此參數(shù)會被忽略,系統(tǒng)會以整張圖進行搜索。 request.crop = true; // 選填,圖片的主體區(qū)域,格式為 x1,x2,y1,y2, 其中 x1,y1 是左上角的點,x2,y2是右下角的點。設(shè)置的region 區(qū)域不要超過圖片的邊界。 // 若用戶設(shè)置了Region,則不論Crop參數(shù)為何值,都將以用戶輸入Region進行搜索。 // 3.對于布料圖片搜索,此參數(shù)會被忽略,系統(tǒng)會以整張圖進行搜索。 request.region="167,467,221,407"; // 選填,過濾條件 // int_attr支持的操作符有>、>=、<、<=、=,str_attr支持的操作符有=和!=,多個條件之支持AND和OR進行連接。 // 示例: // 1. 根據(jù)IntAttr過濾結(jié)果,int_attr>=100 // 2. 根據(jù)StrAttr過濾結(jié)果,str_attr!="value1" // 3. 根據(jù)IntAttr和StrAttr聯(lián)合過濾結(jié)果,int_attr=1000 AND str_attr="value1" request.filter="int_attr=56 AND str_attr=\"test\""; String picName = "D:/123.jpg"; // 圖片內(nèi)容,最多支持 4MB大小圖片以及5s的傳輸?shù)却龝r間。當前僅支持PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、PPM格式圖片; // 對于商品、商標、通用圖片搜索,圖片長和寬的像素必須都大于等于100且小于等于4096; // 對于布料搜索,圖片長和寬的像素必須都大于等于448且小于等于4096; // 圖像中不能帶有旋轉(zhuǎn)信息 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(); } } }
結(jié)果示例
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(); // 創(chuàng)建AK/SK參考:創(chuàng)建AccessKey:http://bestwisewords.com/document_detail/116401.html // 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。 // 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 // 本示例以將AccessKey ID和AccessKey Secret保存在環(huán)境變量為例說明。您也可以根據(jù)業(yè)務(wù)需要,保存到配置文件里。 authConfig.accessKeyId = System.getenv("CC_AK_ENV"); authConfig.accessKeySecret = System.getenv("CC_SK_ENV"); authConfig.type = "access_key"; authConfig.regionId = "cn-shanghai"; // 請您更換成您購買實例的區(qū)域,例如您購買的實例區(qū)域為杭州,則更換為regionId="cn-hangzhou" authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買實例的區(qū)域,例如購買的是杭州區(qū)域,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com" //以下為內(nèi)網(wǎng)(VPC)訪問方式 // 說明:內(nèi)網(wǎng)(VPC)訪問:僅限同區(qū)域ECS或資源的訪問,例如您購買的圖像搜索實例是華東2(上海),那么您的ECS或資源也必須在華東2(上海)才能通過內(nèi)網(wǎng)VPC地址訪問圖搜服務(wù),否則會調(diào)用不通,如果遇到調(diào)用不通,請先檢查您的ECS或資源與圖像搜索是否在同一個區(qū)域。 // authConfig.endpointType = "internal"; // 如果是內(nèi)網(wǎng)訪問圖像搜索服務(wù),則endpointType為必填項,值統(tǒng)一為"internal" // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內(nèi)網(wǎng)訪問(VPC)地址,請您更換為您購買實例的區(qū)域,例如您購買實例的區(qū)域為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com" Client client = new Client(authConfig); SearchImageByNameRequest request = new SearchImageByNameRequest(); // 必填,圖像搜索實例名稱。注意是實例名稱不是實例ID。購買后通過 上云層管控臺實例信息一欄查看 request.instanceName = "XXXXXXXXX"; // 必填,商品id,最多支持 512個字符。 // 一個商品可有多張圖片。 request.productId = "test"; // 必填,圖片名稱,最多支持 512個字符。 // ProductId + PicName唯一確定一張圖片。 request.picName = "1000"; // 選填,商品類目。 // 1. 對于商品搜索:若設(shè)置類目,則以設(shè)置的為準;若不設(shè)置類目,將由系統(tǒng)進行類目預(yù)測,預(yù)測的類目結(jié)果可在Response中獲取 。 // 2. 對于布料、商標、通用搜索:不論是否設(shè)置類目,系統(tǒng)會將類目設(shè)置為88888888。 request.categoryId = 3; // 選填,返回結(jié)果的數(shù)目。取值范圍:1-100。默認值:10。 request.num =10; // 選填,返回結(jié)果的起始位置。取值范圍:0-499。默認值:0。 request.start =0; // 選填,過濾條件 // int_attr支持的操作符有>、>=、<、<=、=,str_attr支持的操作符有=和!=,多個條件之支持AND和OR進行連接。 // 示例: // 1. 根據(jù)IntAttr過濾結(jié)果,int_attr>=100 // 2. 根據(jù)StrAttr過濾結(jié)果,str_attr!="value1" // 3. 根據(jù)IntAttr和StrAttr聯(lián)合過濾結(jié)果,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(); } } }
結(jié)果示例
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(); // 創(chuàng)建AK/SK參考:創(chuàng)建AccessKey:http://bestwisewords.com/document_detail/116401.htm // 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。 // 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 // 本示例以將AccessKey ID和AccessKey Secret保存在環(huán)境變量為例說明。您也可以根據(jù)業(yè)務(wù)需要,保存到配置文件里。 authConfig.accessKeyId = System.getenv("CC_AK_ENV"); authConfig.accessKeySecret = System.getenv("CC_SK_ENV"); authConfig.type = "access_key"; authConfig.regionId = "cn-shanghai"; // 請您更換成您購買實例的區(qū)域,例如您購買的實例區(qū)域為杭州,則更換為regionId="cn-hangzhou" authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買實例的區(qū)域,例如購買的是杭州區(qū)域,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com" //以下為內(nèi)網(wǎng)(VPC)訪問方式 // 說明:內(nèi)網(wǎng)(VPC)訪問:僅限同區(qū)域ECS或資源的訪問,例如您購買的圖像搜索實例是華東2(上海),那么您的ECS或資源也必須在華東2(上海)才能通過內(nèi)網(wǎng)VPC地址訪問圖搜服務(wù),否則會調(diào)用不通,如果遇到調(diào)用不通,請先檢查您的ECS或資源與圖像搜索是否在同一個區(qū)域。 // authConfig.endpointType = "internal"; // 如果是內(nèi)網(wǎng)訪問圖像搜索服務(wù),則endpointType為必填項,值統(tǒng)一為"internal" // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內(nèi)網(wǎng)訪問(VPC)地址,請您更換為您購買實例的區(qū)域,例如您購買實例的區(qū)域為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com" Client client = new Client(authConfig); DeleteImageRequest request = new DeleteImageRequest(); // 必填,圖像搜索實例名稱。注意是實例名稱不是實例ID。購買后通過 上云層管控臺實例信息一欄查看 request.instanceName = "XXXXXXXXXXXX"; // 必填,商品id,最多支持 512個字符。 // 一個商品可有多張圖片。僅指定該參數(shù)不指定picName,結(jié)果可返回刪除的所有picname內(nèi)容 request.productId = "test"; // 選填,圖片名稱。若不指定本參數(shù),則刪除ProductId下所有圖片;若指定本參數(shù),則刪除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(); } } }
結(jié)果示例
{ 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(); // 創(chuàng)建AK/SK參考:創(chuàng)建AccessKey:http://bestwisewords.com/document_detail/116401.htm // 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。 // 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 // 本示例以將AccessKey ID和AccessKey Secret保存在環(huán)境變量為例說明。您也可以根據(jù)業(yè)務(wù)需要,保存到配置文件里。 authConfig.accessKeyId = System.getenv("CC_AK_ENV"); authConfig.accessKeySecret = System.getenv("CC_SK_ENV"); authConfig.type = "access_key"; authConfig.regionId = "cn-shanghai"; // 請您更換成您購買實例的區(qū)域,例如您購買的實例區(qū)域為杭州,則更換為regionId="cn-hangzhou" authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買實例的區(qū)域,例如購買的是杭州區(qū)域,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com" //以下為內(nèi)網(wǎng)(VPC)訪問方式 // 說明:內(nèi)網(wǎng)(VPC)訪問:僅限同區(qū)域ECS或資源的訪問,例如您購買的圖像搜索實例是華東2(上海),那么您的ECS或資源也必須在華東2(上海)才能通過內(nèi)網(wǎng)VPC地址訪問圖搜服務(wù),否則會調(diào)用不通,如果遇到調(diào)用不通,請先檢查您的ECS或資源與圖像搜索是否在同一個區(qū)域。 // authConfig.endpointType = "internal"; // 如果是內(nèi)網(wǎng)訪問圖像搜索服務(wù),則endpointType為必填項,值統(tǒng)一為"internal" // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內(nèi)網(wǎng)訪問(VPC)地址,請您更換為您購買實例的區(qū)域,例如您購買實例的區(qū)域為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com" Client client = new Client(authConfig); UpdateImageRequest request = new UpdateImageRequest(); // 必填,圖像搜索實例名稱。注意是實例名稱不是實例ID。購買后通過 上云層管控臺實例信息一欄查看 request.instanceName = "XXXXXXXXX"; // 必填,商品ID不可修改。 request.setProductId("1"); // 必填,圖片名稱不可修改。 request.setPicName("1"); // 選填,整數(shù)類型屬性,可用于查詢時過濾,查詢時會返回該字段。 request.setIntAttr(1); // 選填,字符串類型屬性,最多支持128個字符??捎糜诓樵儠r過濾,查詢時會返回該字段。 request.setStrAttr("test"); // 選填,用戶自定義的內(nèi)容,最多支持4096個字符。 request.setCustomContent("這是一個測試說明"); UpdateImageResponse response = client.updateImage(request); System.out.println("requestId: " + response.getBody().requestId + ". success: " + response.getBody().success + ". message: " + response.getBody().message); } }
結(jié)果示例
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(); // 創(chuàng)建AK/SK參考:創(chuàng)建AccessKey:http://bestwisewords.com/document_detail/116401.htm // 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。 // 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 // 本示例以將AccessKey ID和AccessKey Secret保存在環(huán)境變量為例說明。您也可以根據(jù)業(yè)務(wù)需要,保存到配置文件里。 authConfig.accessKeyId = System.getenv("CC_AK_ENV"); authConfig.accessKeySecret = System.getenv("CC_SK_ENV"); authConfig.type = "access_key"; authConfig.regionId = "cn-shanghai"; // 請您更換成您購買實例的區(qū)域,例如您購買的實例區(qū)域為杭州,則更換為regionId="cn-hangzhou" authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買實例的區(qū)域,例如購買的是杭州區(qū)域,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com" //以下為內(nèi)網(wǎng)(VPC)訪問方式 // 說明:內(nèi)網(wǎng)(VPC)訪問:僅限同區(qū)域ECS或資源的訪問,例如您購買的圖像搜索實例是華東2(上海),那么您的ECS或資源也必須在華東2(上海)才能通過內(nèi)網(wǎng)VPC地址訪問圖搜服務(wù),否則會調(diào)用不通,如果遇到調(diào)用不通,請先檢查您的ECS或資源與圖像搜索是否在同一個區(qū)域。 // authConfig.endpointType = "internal"; // 如果是內(nèi)網(wǎng)訪問圖像搜索服務(wù),則endpointType為必填項,值統(tǒng)一為"internal" // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內(nèi)網(wǎng)訪問(VPC)地址,請您更換為您購買實例的區(qū)域,例如您購買實例的區(qū)域為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com" Client client = new Client(authConfig); DetailRequest request = new DetailRequest(); // 必填,圖像搜索實例名稱。注意是實例名稱不是實例ID。購買后通過 上云層管控臺實例信息一欄查看 request.instanceName = "XXXXXXXXX"; DetailResponse detail = client.detail(request); System.out.println(detail.getBody().toMap()); } }
結(jié)果示例
{ 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(); // 創(chuàng)建AK/SK參考:創(chuàng)建AccessKey:http://bestwisewords.com/document_detail/116401.htm // 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。 // 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 // 本示例以將AccessKey ID和AccessKey Secret保存在環(huán)境變量為例說明。您也可以根據(jù)業(yè)務(wù)需要,保存到配置文件里。 authConfig.accessKeyId = System.getenv("CC_AK_ENV"); authConfig.accessKeySecret = System.getenv("CC_SK_ENV"); authConfig.type = "access_key"; authConfig.regionId = "cn-shanghai"; // 請您更換成您購買實例的區(qū)域,例如您購買的實例區(qū)域為杭州,則更換為regionId="cn-hangzhou" authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買實例的區(qū)域,例如購買的是杭州區(qū)域,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com" //以下為內(nèi)網(wǎng)(VPC)訪問方式 // 說明:內(nèi)網(wǎng)(VPC)訪問:僅限同區(qū)域ECS或資源的訪問,例如您購買的圖像搜索實例是華東2(上海),那么您的ECS或資源也必須在華東2(上海)才能通過內(nèi)網(wǎng)VPC地址訪問圖搜服務(wù),否則會調(diào)用不通,如果遇到調(diào)用不通,請先檢查您的ECS或資源與圖像搜索是否在同一個區(qū)域。 // authConfig.endpointType = "internal"; // 如果是內(nèi)網(wǎng)訪問圖像搜索服務(wù),則endpointType為必填項,值統(tǒng)一為"internal" // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內(nèi)網(wǎng)訪問(VPC)地址,請您更換為您購買實例的區(qū)域,例如您購買實例的區(qū)域為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com" Client client = new Client(authConfig); DumpMetaRequest request = new DumpMetaRequest(); // 必填,圖像搜索實例名稱。注意是實例名稱不是實例ID。購買后通過 上云層管控臺實例信息一欄查看 request.instanceName = "XXXXXXXXX"; DumpMetaResponse response = client.dumpMeta(request); System.out.println(response.getBody().toMap()); } }
結(jié)果示例
{ 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(); // 創(chuàng)建AK/SK參考:創(chuàng)建AccessKey:http://bestwisewords.com/document_detail/116401.htm // 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。 // 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 // 本示例以將AccessKey ID和AccessKey Secret保存在環(huán)境變量為例說明。您也可以根據(jù)業(yè)務(wù)需要,保存到配置文件里。 authConfig.accessKeyId = System.getenv("CC_AK_ENV"); authConfig.accessKeySecret = System.getenv("CC_SK_ENV"); authConfig.type = "access_key"; authConfig.regionId = "cn-shanghai"; // 請您更換成您購買實例的區(qū)域,例如您購買的實例區(qū)域為杭州,則更換為regionId="cn-hangzhou" authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買實例的區(qū)域,例如購買的是杭州區(qū)域,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com" //以下為內(nèi)網(wǎng)(VPC)訪問方式 // 說明:內(nèi)網(wǎng)(VPC)訪問:僅限同區(qū)域ECS或資源的訪問,例如您購買的圖像搜索實例是華東2(上海),那么您的ECS或資源也必須在華東2(上海)才能通過內(nèi)網(wǎng)VPC地址訪問圖搜服務(wù),否則會調(diào)用不通,如果遇到調(diào)用不通,請先檢查您的ECS或資源與圖像搜索是否在同一個區(qū)域。 // authConfig.endpointType = "internal"; // 如果是內(nèi)網(wǎng)訪問圖像搜索服務(wù),則endpointType為必填項,值統(tǒng)一為"internal" // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內(nèi)網(wǎng)訪問(VPC)地址,請您更換為您購買實例的區(qū)域,例如您購買實例的區(qū)域為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com" Client client = new Client(authConfig); DumpMetaListRequest request = new DumpMetaListRequest(); // 必填,圖像搜索實例名稱。注意是實例名稱不是實例ID。購買后通過 上云層管控臺實例信息一欄查看,圖像搜索實例名稱。 request.instanceName = "XXXXXXXXX"; // 選填,元數(shù)據(jù)導出任務(wù)id request.setId(567L); // 選填,返回結(jié)果起始位置,默認1 request.setPageNumber(1); // 選填,返回結(jié)果數(shù)量,默認20 request.setPageSize(1); DumpMetaListResponse response = client.dumpMetaList(request); System.out.println(response.getBody().toMap()); } }
結(jié)果示例
{ 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(); // 創(chuàng)建AK/SK參考:創(chuàng)建AccessKey:http://bestwisewords.com/document_detail/116401.htm // 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。 // 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 // 本示例以將AccessKey ID和AccessKey Secret保存在環(huán)境變量為例說明。您也可以根據(jù)業(yè)務(wù)需要,保存到配置文件里。 authConfig.accessKeyId = System.getenv("CC_AK_ENV"); authConfig.accessKeySecret = System.getenv("CC_SK_ENV"); authConfig.type = "access_key"; authConfig.regionId = "cn-shanghai"; // 請您更換成您購買實例的區(qū)域,例如您購買的實例區(qū)域為杭州,則更換為regionId="cn-hangzhou" authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買實例的區(qū)域,例如購買的是杭州區(qū)域,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com" //以下為內(nèi)網(wǎng)(VPC)訪問方式 // 說明:內(nèi)網(wǎng)(VPC)訪問:僅限同區(qū)域ECS或資源的訪問,例如您購買的圖像搜索實例是華東2(上海),那么您的ECS或資源也必須在華東2(上海)才能通過內(nèi)網(wǎng)VPC地址訪問圖搜服務(wù),否則會調(diào)用不通,如果遇到調(diào)用不通,請先檢查您的ECS或資源與圖像搜索是否在同一個區(qū)域。 // authConfig.endpointType = "internal"; // 如果是內(nèi)網(wǎng)訪問圖像搜索服務(wù),則endpointType為必填項,值統(tǒng)一為"internal" // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內(nèi)網(wǎng)訪問(VPC)地址,請您更換為您購買實例的區(qū)域,例如您購買實例的區(qū)域為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com" Client client = new Client(authConfig); IncreaseInstanceRequest request = new IncreaseInstanceRequest(); // 必填,圖像搜索實例名稱。注意是實例名稱不是實例ID。購買后通過 上云層管控臺實例信息一欄查看 request.instanceName = "XXXXXXXXX"; // 必填,oss 中 bucket名稱 request.setBucketName("bucketName"); // 必填,路徑,必須 / 開頭, 非 / 結(jié)尾 // 此路徑下需要提前準備好 increment.meta 文件,可參考,用戶指南下的批量操作文檔。 request.setPath("/public/xxx"); // 選填,請求成功回調(diào)地址,http(s):// request.setCallbackAddress("http://xxx/xxx"); IncreaseInstanceResponse response = client.increaseInstance(request); System.out.println(response.getBody().toMap()); } }
結(jié)果示例
{ 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(); // 創(chuàng)建AK/SK參考:創(chuàng)建AccessKey:http://bestwisewords.com/document_detail/116401.htm // 阿里云賬號AccessKey擁有所有API的訪問權(quán)限,建議您使用RAM用戶進行API訪問或日常運維。 // 強烈建議不要把AccessKey ID和AccessKey Secret保存到工程代碼里,否則可能導致AccessKey泄露,威脅您賬號下所有資源的安全。 // 本示例以將AccessKey ID和AccessKey Secret保存在環(huán)境變量為例說明。您也可以根據(jù)業(yè)務(wù)需要,保存到配置文件里。 authConfig.accessKeyId = System.getenv("CC_AK_ENV"); authConfig.accessKeySecret = System.getenv("CC_SK_ENV"); authConfig.type = "access_key"; authConfig.regionId = "cn-shanghai"; // 請您更換成您購買實例的區(qū)域,例如您購買的實例區(qū)域為杭州,則更換為regionId="cn-hangzhou" authConfig.endpoint = "imagesearch.cn-shanghai.aliyuncs.com"; // 請更換成您購買實例的區(qū)域,例如購買的是杭州區(qū)域,則endpoint="imagesearch.cn-hangzhou.aliyuncs.com" //以下為內(nèi)網(wǎng)(VPC)訪問方式 // 說明:內(nèi)網(wǎng)(VPC)訪問:僅限同區(qū)域ECS或資源的訪問,例如您購買的圖像搜索實例是華東2(上海),那么您的ECS或資源也必須在華東2(上海)才能通過內(nèi)網(wǎng)VPC地址訪問圖搜服務(wù),否則會調(diào)用不通,如果遇到調(diào)用不通,請先檢查您的ECS或資源與圖像搜索是否在同一個區(qū)域。 // authConfig.endpointType = "internal"; // 如果是內(nèi)網(wǎng)訪問圖像搜索服務(wù),則endpointType為必填項,值統(tǒng)一為"internal" // authConfig.endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 為內(nèi)網(wǎng)訪問(VPC)地址,請您更換為您購買實例的區(qū)域,例如您購買實例的區(qū)域為杭州,則endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com" Client client = new Client(authConfig); IncreaseListRequest request = new IncreaseListRequest(); // 必填,圖像搜索實例名稱。注意是實例名稱不是實例ID。購買后通過 上云層管控臺實例信息一欄查看 request.instanceName = "XXXXXXXXX"; // 選填,批量任務(wù)id request.setId(1470L); // 選填,查詢oss 的 BucketName request.setBucketName("BucketName"); // 選填,查詢oss 的 path 路徑 request.setPath("/localization/xxxx"); // 選填,返回結(jié)果起始位置,默認1 request.setPageNumber(1); // 選填,返回結(jié)果數(shù)量,默認20 request.setPageSize(1); IncreaseListResponse response = client.increaseList(request); System.out.println(response.getBody().toMap()); } }
結(jié)果示例
{ 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 } ] } } }
文檔內(nèi)容是否對您有幫助?