Java SDK

本文介绍图像搜索服务Java SDK的使用方法及示例。

说明

如需了解更多产品详情和获取技术支持,请单击在线咨询或通过钉钉群(35035130)联系我们。

接口列表

接口名称

接口说明

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.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();
            // 创建AK/SK参考:创建AccessKey:https://help.aliyun.com/document_detail/116401.htm
            // 阿里云账号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或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // authConfig.endpointType = "internal";  // 如果是内网访问图像搜索服务,则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();
            // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过 上云层管控台实例信息一栏查看
            request.instanceName = "XXXXXXXXXXX";
            // 必填,商品id,最多支持512个字符。
            // 一个商品可有多张图片。
            request.productId = "test";
            // 必填,图片名称,最多支持512个字符。
            // 1. ProductId + PicName唯一确定一张图片。
            // 2. 如果多次添加图片具有相同的ProductId + PicName,以最后一次添加为准,前面添加的图片将被覆盖。
            request.picName = "cloth.jpg";
            // 选填,图片类目。
            // 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时,则不进行主体识别,以整张图进行搜索。
            // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
            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://help.aliyun.com/document_detail/116401.htm
            // 阿里云账号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或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // authConfig.endpointType = "internal";  // 如果是内网访问图像搜索服务,则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();
            // 必填,图像搜索实例名称。注意是实例名称不是实例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时,则不进行主体识别,以整张图进行搜索。
            // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
            request.crop = true;
            // 选填,图片的主体区域,格式为 x1,x2,y1,y2, 其中 x1,y1 是左上角的点,x2,y2是右下角的点。设置的region 区域不要超过图片的边界。
            // 若用户设置了Region,则不论Crop参数为何值,都将以用户输入Region进行搜索。
            // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
            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://help.aliyun.com/document_detail/116401.html
            // 阿里云账号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或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // authConfig.endpointType = "internal";  // 如果是内网访问图像搜索服务,则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();
            // 必填,图像搜索实例名称。注意是实例名称不是实例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://help.aliyun.com/document_detail/116401.htm
            // 阿里云账号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或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // authConfig.endpointType = "internal";  // 如果是内网访问图像搜索服务,则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();
            // 必填,图像搜索实例名称。注意是实例名称不是实例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://help.aliyun.com/document_detail/116401.htm
            // 阿里云账号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或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // authConfig.endpointType = "internal";  // 如果是内网访问图像搜索服务,则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();
            // 必填,图像搜索实例名称。注意是实例名称不是实例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://help.aliyun.com/document_detail/116401.htm
            // 阿里云账号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或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // authConfig.endpointType = "internal";  // 如果是内网访问图像搜索服务,则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();
            // 必填,图像搜索实例名称。注意是实例名称不是实例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://help.aliyun.com/document_detail/116401.htm
            // 阿里云账号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或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // authConfig.endpointType = "internal";  // 如果是内网访问图像搜索服务,则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();
            // 必填,图像搜索实例名称。注意是实例名称不是实例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://help.aliyun.com/document_detail/116401.htm
            // 阿里云账号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或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // authConfig.endpointType = "internal";  // 如果是内网访问图像搜索服务,则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();
            // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过 上云层管控台实例信息一栏查看,图像搜索实例名称。
            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://help.aliyun.com/document_detail/116401.htm
            // 阿里云账号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或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // authConfig.endpointType = "internal";  // 如果是内网访问图像搜索服务,则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();
            // 必填,图像搜索实例名称。注意是实例名称不是实例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://help.aliyun.com/document_detail/116401.htm
            // 阿里云账号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或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
            // authConfig.endpointType = "internal";  // 如果是内网访问图像搜索服务,则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();
            // 必填,图像搜索实例名称。注意是实例名称不是实例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
            }
          ]
        }
      }
    }