.Net SDK

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

接口列表

接口名称

接口说明

Add

增加图片。

SearchImageByPic

使用图片进行搜索。

SearchImageByName

指定名称,使用已入库的图片进行搜索。

SearchImageByText

使用文本进行搜索。(仅在服务类型为商品多模态搜索时可以使用。)

Delete

删除图片。

UpdateImage

修改图片。

Detail

查询实例信息。

DumpMeta

元信息导出任务。

DumpMetaList

元信息导出任务列表。

BatchTask

批量任务。

BatchTaskList

批量任务列表。

CompareSimilarByImage

比较两个图片的相似度。

准备工作

在安装和使用阿里云SDK前,确保您已经注册阿里云账号并生成访问密钥(AccessKey)。详情请参见创建AccessKey

  1. 在解决方案资源管理器面板中,右键单击您的项目,选择NuGet程序包菜单管理

  2. 在打开的NuGet管理面板中单击浏览选项卡,输入AlibabaCloud.SDK.ImageSearch20201214

  3. 单击安装

Add接口

  • 代码示例

    using AlibabaCloud.OpenApiClient.Models;
    using AlibabaCloud.SDK.ImageSearch20201214.Models;
    using AlibabaCloud.SDK.ImageSearch20201214;
    using AlibabaCloud.TeaUtil.Models;
    using System;
    using System.IO;
    namespace Test
    {
        class Add
        {
            static void Main(string[] args)
            {
                // Console.WriteLine("Hello World!");
                Config config = new Config();
                // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
                //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
                //强烈建议不要把AccessKey IDAccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
                //本示例以将AccessKey IDAccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
                IDictionary environmentVariables = Environment.GetEnvironmentVariables();
                foreach (DictionaryEntry de in environmentVariables)
                {
                    if (de.Key.Equals("CC_AK_ENV")) {
                        config.AccessKeyId = (string)de.Value;
                    }
                    if (de.Key.Equals("CC_SK_ENV"))
                    {
                        config.AccessKeySecret = (string)de.Value;
                    }
                }
                config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
                config.RegionId = "cn-shanghai";
                config.Type = "access_key";
    
                // 以下为内网(VPC)访问方式
                // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
                // config.EndpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
                // config.Endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
                
                Client client = new Client(config);
                FileStream fs = File.OpenRead("D:/111.jpg");
                AddImageAdvanceRequest request = new AddImageAdvanceRequest();
                // 必填,图片名称,最多支持 256个字符。
                 // 1. ProductId + PicName唯一确定一张图片。
               // 2. 如果多次添加图片具有相同的ProductId + PicName,以最后一次添加为准,前面添加的图片将被覆盖
                request.PicName = "xusong.jpg";
                // 必填,商品id,最多支持 256个字符。
                // 一个商品可有多张图片。
                request.ProductId = "1001";
                // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
                request.InstanceName = "XXXXXXXXXXXXXXXXXXXXXXXXX";
                // 图片内容,最多支持 4MB大小图片以及5s的传输等待时间。当前仅支持PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、PPM格式图片;
                // 对于商品、商标、通用图片搜索,图片长和宽的像素必须都大于等于100且小于等于4096;
                // 对于布料搜索,图片长和宽的像素必须都大于等于100且小于等于4096;
                // 图像中不能带有旋转信息
                request.PicContentObject = fs;
                // 选填,整数类型属性,可用于查询时过滤,查询时会返回该字段。
                //  例如不同的站点的图片/不同用户的图片,可以设置不同的IntAttr,查询时通过过滤来达到隔离的目的
                request.IntAttr = 99;
                 // 选填,字符串类型属性,最多支持 128个字符。可用于查询时过滤,查询时会返回该字段。
                request.StrAttr = "aliyun.com";
                // 选填,图片类目。
                // 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取 。
                // 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
                request.CategoryId = 5;
                // 选填,是否需要进行主体识别,默认为true。
               // 1.为true时,由系统进行主体识别,以识别的主体进行搜索,主体识别结果可在Response中获取。
               // 2. 为false时,则不进行主体识别,以整张图进行搜索。
               // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
                request.Crop = true;
                // 选填,图片的主体区域,格式为 x1,x2,y1,y2, 其中 x1,y1 是左上角的点,x2,y2是右下角的点。
                // 设置的region 区域不要超过图片的边界
               // 若用户设置了Region,则不论Crop参数为何值,都将以用户输入Region进行搜索。
                // 对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
                request.Region = "66,333,97,356";
                RuntimeOptions runtimeObject = new RuntimeOptions();
                try
                {
                    AddImageResponse response = client.AddImageAdvance(request, runtimeObject);
                    Console.WriteLine("result:" + Newtonsoft.Json.JsonConvert.SerializeObject(response));
                }
                catch (TeaUnretryableException e)
                {
                    Console.WriteLine("InnerException结果:" + e.InnerException.Message);
                    Console.WriteLine("Data结果:" + e.Data);
                    Console.WriteLine("Message结果:" + e.Message);
                    Console.WriteLine("打印String:" + e.ToString());
                }
            }
        }
    }
  • 结果示例

    result:{"Headers":{"date":"Mon, 11 Jan 2021 06:57:16 GMT","connection":"keep-alive","access-control-allow-origin":"*","access-control-allow-methods":"POST, GET, OPTIONS","access-control-allow-headers":"X-Requested-With, X-Sequence, _aop_secret, _aop_signature","access-control-max-age":"172800","x-acs-request-id":"6D32C931-D584-4927-938A-6053AE9B630D"},"Body":{"Message":"success","RequestId":"6D32C931-D584-4927-938A-6053AE9B630D","Code":0,"PicInfo":{"Region":"112,440,76,387","CategoryId":88888888},"Success":true}}

SearchImageByPic接口

  • 代码示例

    using AlibabaCloud.OpenApiClient.Models;
    using AlibabaCloud.SDK.ImageSearch20201214.Models;
    using AlibabaCloud.SDK.ImageSearch20201214;
    using AlibabaCloud.TeaUtil.Models;
    using System;
    using System.IO;
    namespace Test
    {
        class SearchImageByPic
        {
            static void Main(string[] args)
            {
                Config config = new Config();
                // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
                //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
                //强烈建议不要把AccessKey IDAccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
                //本示例以将AccessKey IDAccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
                IDictionary environmentVariables = Environment.GetEnvironmentVariables();
                foreach (DictionaryEntry de in environmentVariables)
                {
                    if (de.Key.Equals("CC_AK_ENV")) {
                        config.AccessKeyId = (string)de.Value;
                    }
                    if (de.Key.Equals("CC_SK_ENV"))
                    {
                        config.AccessKeySecret = (string)de.Value;
                    }
                }
                config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
                config.RegionId = "cn-shanghai";
                config.Type = "access_key";
    
                // 以下为内网(VPC)访问方式
                // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
                // config.EndpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
                // config.Endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
                
                Client client = new Client(config);
                FileStream fs = File.OpenRead("D:/123.jpg");
                SearchImageByPicAdvanceRequest request = new SearchImageByPicAdvanceRequest();
                // 选填,商品类目。
                // 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取 。
                // 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
                request.CategoryId = 5;
                // 图片内容,最多支持 4MB大小图片以及5s的传输等待时间。当前仅支持PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、PPM格式图片;      
                // 对于商品、商标、通用图片搜索,图片长和宽的像素必须都大于等于100且小于等于4096;  
                // 对于布料搜索,图片长和宽的像素必须都大于等于448且小于等于4096;        
                // 图像中不能带有旋转信息
                request.PicContentObject = fs;
                // 选填,是否需要进行主体识别,默认为true。
                // 1.为true时,由系统进行主体识别,以识别的主体进行搜索,主体识别结果可在Response中获取。
                // 2. 为false时,则不进行主体识别,以整张图进行搜索。
                // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
                request.Crop = true;
                // 选填,过滤条件
                // int_attr支持的操作符有>、>=、<、<=、=,str_attr支持的操作符有=和!=,多个条件之支持ANDOR进行连接。
                // 示例:
                //1. 根据IntAttr过滤结果,int_attr>=100
                //2. 根据StrAttr过滤结果,str_attr!="value1"
                //3. 根据IntAttrStrAttr联合过滤结果,int_attr=1000 AND str_attr="value1"
                request.Filter = "int_attr=99";
                // 选填,图片的主体区域,格式为 x1,x2,y1,y2, 其中 x1,y1 是左上角的点,x2,y2是右下角的点。
                // 设置的region 区域不要超过图片的边界。
                // 若用户设置了Region,则不论Crop参数为何值,都将以用户输入Region进行搜索。
                // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
                request.Region = "66,333,98,356";
                // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
                request.InstanceName = "XXXXXX";
                // 选填,若为true则响应数据根据ProductId进行返回。
                request.DistinctProductId = false;
                RuntimeOptions runtimeObject = new RuntimeOptions();
                try
                {
                    SearchImageByPicResponse response = client.SearchImageByPicAdvance(request, runtimeObject);
                    String result = Newtonsoft.Json.JsonConvert.SerializeObject(response);
                    Console.WriteLine("result:" + result);
                    }
                catch (TeaUnretryableException e)
                {
                    Console.WriteLine("InnerException结果:" + e.InnerException.Message);
                    Console.WriteLine("Data结果:" + e.Data);
                    Console.WriteLine("Message结果:" + e.Message);
                    Console.WriteLine("打印String:" + e.ToString());
                }
            }
        }
    }
  • 结果示例

    result:
    {
        "RequestId":"632814A0-F34D-46FB-882D-81D74E7C3290",
        "Success":true,
        "Code":0,
        "Msg":"success",
        "Auctions":[
            {
                "CategoryId":0,
                "ProductId":"test",
                "PicName":"test.jpg",
                "CustomContent":null,
                "Score":1.0
                "SortExprValues":"7.33136443711219;0",
                "IntAttr":null,
                "StrAttr":null
            },
            {......}
            ],
        "Head":{
            "DocsReturn":4,
            "DocsFound":4,
            "SearchTime":155
        },
        "PicInfo":{
            "CategoryId":0,
            "Region":"202,596,155,637",
            "AllCategories":[{"Id":0,"Name":"Tops"},{.....}],
            "MultiRegion":[
                {"Region":"112,440,76,387"}
            ]
         }
    }

SearchImageByName接口

  • 代码示例

    using AlibabaCloud.OpenApiClient.Models;
    using AlibabaCloud.SDK.ImageSearch20201214.Models;
    using AlibabaCloud.SDK.ImageSearch20201214;
    using AlibabaCloud.TeaUtil.Models;
    using System;
    using System.IO;
    namespace Test
    {
        class SearchImageByName
        {
            static void Main(string[] args)
            {
                Config config = new Config();
                // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
                //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
                //强烈建议不要把AccessKey IDAccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
                //本示例以将AccessKey IDAccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
                IDictionary environmentVariables = Environment.GetEnvironmentVariables();
                foreach (DictionaryEntry de in environmentVariables)
                {
                    if (de.Key.Equals("CC_AK_ENV")) {
                        config.AccessKeyId = (string)de.Value;
                    }
                    if (de.Key.Equals("CC_SK_ENV"))
                    {
                        config.AccessKeySecret = (string)de.Value;
                    }
                }
                config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
                config.RegionId = "cn-shanghai";
                config.Type = "access_key";
    
                // 以下为内网(VPC)访问方式
                // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
                // config.EndpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
                // config.Endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
                Client client = new Client(config);           
                SearchImageByNameRequest request = new SearchImageByNameRequest();
                // 选填,商品类目。
                // 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取 。
                // 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
                request.CategoryId = 5;
                // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
                request.InstanceName = "XXXXXXXXXX";
                // 必填,图片名称,最多支持 256个字符。
                // 1. ProductId + PicName唯一确定一张图片
                request.PicName = "xusong.jpg";
                // 必填,商品id,最多支持 256个字符。
                // 一个商品可有多张图片。
                request.ProductId = "1001";
                try
                {
                    SearchImageByNameResponse response = client.SearchImageByName(request);
                    String result = Newtonsoft.Json.JsonConvert.SerializeObject(response);
                    Console.WriteLine("result:" + result);
                }
                catch (TeaUnretryableException e)
                {
                    Console.WriteLine("InnerException结果:" + e.InnerException.Message);
                    Console.WriteLine("Data结果:" + e.Data);
                    Console.WriteLine("Message结果:" + e.Message);
                    Console.WriteLine("打印String:" + e.ToString());
                }
            }
        }
    }
  • 结果示例

    result:
    {
        "RequestId":"5B16E5CD-FE8A-4A4E-A90B-02A5C9F8BD81",
        "Success":true,
        "Code":0,
        "Msg":"success",
        "Auctions":[
            {
                "CategoryId":0,
                "ProductId":"test",
                "PicName":"test.jpg",
                "CustomContent":null,
                "Score":1.0
                "SortExprValues":"7.33136443711219;0",
                "IntAttr":null,
                "StrAttr":null
            },
            {....}
        ],
        "Head":{
            "DocsReturn":4,
            "DocsFound":4,
            "SearchTime":50
        },
        "PicInfo":{
            "CategoryId":0,
            "Region":null,
            "AllCategories":[
                {"Id":0,"Name":"Tops"},
                {...}
            ],
           "MultiRegion":[
                {"Region":"112,440,76,387"}
           ]
        }
    }

SearchImageByText接口

重要

SearchImageByText接口仅在服务类型为商品多模态搜索时可以使用。

  • 代码示例

    using AlibabaCloud.OpenApiClient.Models;
    using AlibabaCloud.SDK.ImageSearch20201214.Models;
    using AlibabaCloud.SDK.ImageSearch20201214;
    using AlibabaCloud.TeaUtil.Models;
    using System;
    using System.IO;
    namespace Test
    {
        class SearchImageByText
        {
            static void Main(string[] args)
            {
                Config config = new Config();
                // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
                //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
                //强烈建议不要把AccessKey IDAccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
                //本示例以将AccessKey IDAccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
                IDictionary environmentVariables = Environment.GetEnvironmentVariables();
                foreach (DictionaryEntry de in environmentVariables)
                {
                    if (de.Key.Equals("CC_AK_ENV")) {
                        config.AccessKeyId = (string)de.Value;
                    }
                    if (de.Key.Equals("CC_SK_ENV"))
                    {
                        config.AccessKeySecret = (string)de.Value;
                    }
                }
                config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
                config.RegionId = "cn-shanghai";
                config.Type = "access_key";
    
                // 以下为内网(VPC)访问方式
                // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
                // config.EndpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
                // config.Endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
                Client client = new Client(config);           
                SearchImageByTextRequest request = new SearchImageByTextRequest();
                // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
                // 注意:本接口仅在服务类型为商品多模态搜索时可以使用。
                request.InstanceName = "XXXXXXXXXX";
                // 描述文本,支持中英文,最多支持512个字符。
                request.Text = "xxxxxx"
                try
                {
                    SearchImageByTextResponse response = client.searchImageByText(request);
                    String result = Newtonsoft.Json.JsonConvert.SerializeObject(response);
                    Console.WriteLine("result:" + result);
                }
                catch (TeaUnretryableException e)
                {
                    Console.WriteLine("InnerException结果:" + e.InnerException.Message);
                    Console.WriteLine("Data结果:" + e.Data);
                    Console.WriteLine("Message结果:" + e.Message);
                    Console.WriteLine("打印String:" + e.ToString());
                }
            }
        }
    }
  • 结果示例

    result:
    {
        "RequestId":"5B16E5CD-FE8A-4A4E-A90B-02A5C9F8BD81",
        "Success":true,
        "Code":0,
        "Msg":"success",
        "Auctions":[
            {
                "CategoryId":0,
                "ProductId":"test",
                "PicName":"test.jpg",
                "CustomContent":null,
                "Score":1.0
                "IntAttr":null,
                "StrAttr":null
            },
            {....}
        ],
        "Head":{
            "DocsReturn":4,
            "DocsFound":4,
            "SearchTime":50
        },
        "PicInfo":{
            "AllCategories":[
                {"Id":0,"Name":"Tops"},
                {...}
            ]
        }
    }

Delete接口

  • 代码示例

    using AlibabaCloud.OpenApiClient.Models;
    using AlibabaCloud.SDK.ImageSearch20201214.Models;
    using AlibabaCloud.SDK.ImageSearch20201214;
    using AlibabaCloud.TeaUtil.Models;
    using System;
    using System.IO;
    namespace Test
    {
        class Delete
        {
            static void Main(string[] args)
            {
                Config config = new Config();
                // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
                //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
                //强烈建议不要把AccessKey IDAccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
                //本示例以将AccessKey IDAccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
                IDictionary environmentVariables = Environment.GetEnvironmentVariables();
                foreach (DictionaryEntry de in environmentVariables)
                {
                    if (de.Key.Equals("CC_AK_ENV")) {
                        config.AccessKeyId = (string)de.Value;
                    }
                    if (de.Key.Equals("CC_SK_ENV"))
                    {
                        config.AccessKeySecret = (string)de.Value;
                    }
                }
                config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
                config.RegionId = "cn-shanghai";
                config.Type = "access_key";
    
                // 以下为内网(VPC)访问方式
                // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
                // config.EndpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
                // config.Endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
                Client client = new Client(config);
                DeleteImageRequest request = new DeleteImageRequest();
                // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
                request.InstanceName = "XXXXXXXXXXX";
                // 必填,图片名称,最多支持 256个字符。
                // 1. ProductId + PicName唯一确定一张图片。
                request.PicName = "xusong.jpg";
                //  选填,图片名称。若不指定本参数,则删除ProductId下所有图片;若指定本参数,则删除ProductId+PicName指定的图片。
                request.ProductId = "1001";
                // 选填,若为true则根据filter进行删除。
                request.IsDeleteByFilter = false;
                request.Filter = "intattr3=xxx";
                try
                {
                    DeleteImageResponse response = client.DeleteImage(request);
                    Console.WriteLine("RequestId:" + response.Body.RequestId);
                    Console.WriteLine("Message:" + response.Body.Message);
                    Console.WriteLine("Code:" + response.Body.Code);
                }
                catch (TeaUnretryableException e)
                {
                    Console.WriteLine("InnerException结果:" + e.InnerException.Message);
                    Console.WriteLine("Data结果:" + e.Data);
                    Console.WriteLine("Message结果:" + e.Message);
                    Console.WriteLine("打印String:" + e.ToString());
                }
            }
        }
    }

  • 结果示例

    RequestId:D9BDEAE0-674C-4126-9D76-A79F0BE9E881
    Message:success
    Code:0

UpdateImage接口

  • 代码示例

    using AlibabaCloud.OpenApiClient.Models;
    using AlibabaCloud.SDK.ImageSearch20201214.Models;
    using AlibabaCloud.SDK.ImageSearch20201214;
    using AlibabaCloud.TeaUtil.Models;
    using System;
    using System.IO;
    namespace Test
    {
        class UpdateImage
        {
            static void Main(string[] args)
            {
                Config config = new Config();
                // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
                //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
                //强烈建议不要把AccessKey IDAccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
                //本示例以将AccessKey IDAccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
                IDictionary environmentVariables = Environment.GetEnvironmentVariables();
                foreach (DictionaryEntry de in environmentVariables)
                {
                    if (de.Key.Equals("CC_AK_ENV")) {
                        config.AccessKeyId = (string)de.Value;
                    }
                    if (de.Key.Equals("CC_SK_ENV"))
                    {
                        config.AccessKeySecret = (string)de.Value;
                    }
                }
                config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
                config.RegionId = "cn-shanghai";
                config.Type = "access_key";
    
                // 以下为内网(VPC)访问方式
                // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
                // config.EndpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
                // config.Endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
                Client client = new Client(config);
                UpdateImageRequest request = new UpdateImageRequest();
                // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
                request.InstanceName = "XXXXXXXXXXX";
                // 必填,商品ID 不可修改。
                request.ProductId = "1";
                // 必填,图片名称,不可修改。
                request.PicName = "1";
                // 选填,整数类型属性,可用于查询时过滤,查询时会返回该字段。
                request.IntAttr = 1;
                // 选填,字符串类型属性,最多支持 128个字符。可用于查询时过滤,查询时会返回该字段。
                request.StrAttr = "test";
                // 选填,用户自定义的内容,最多支持4096个字符。
                request.CustomContent ="这是一个测试说明";
                try
                {
                    UpdateImageResponse response = client.UpdateImage(request);
                    String result = Newtonsoft.Json.JsonConvert.SerializeObject(response.Body);
                    Console.WriteLine("result:" + result);
                }
                catch (TeaUnretryableException e)
                {
                    Console.WriteLine("InnerException结果:" + e.InnerException.Message);
                    Console.WriteLine("Data结果:" + e.Data);
                    Console.WriteLine("Message结果:" + e.Message);
                    Console.WriteLine("打印String:" + e.ToString());
                }
            }
        }
    }

  • 结果示例

    result:{"Code":0,"Message":null,"RequestId":"4F66A9C0-9D36-152A-B5DB-C0B3624D3331","Success":true}

Detail接口

  • 代码示例

    using AlibabaCloud.OpenApiClient.Models;
    using AlibabaCloud.SDK.ImageSearch20201214.Models;
    using AlibabaCloud.SDK.ImageSearch20201214;
    using AlibabaCloud.TeaUtil.Models;
    using System;
    using System.IO;
    namespace Test
    {
        class Detail
        {
            static void Main(string[] args)
            {
                Config config = new Config();
                // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
                //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
                //强烈建议不要把AccessKey IDAccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
                //本示例以将AccessKey IDAccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
                IDictionary environmentVariables = Environment.GetEnvironmentVariables();
                foreach (DictionaryEntry de in environmentVariables)
                {
                    if (de.Key.Equals("CC_AK_ENV")) {
                        config.AccessKeyId = (string)de.Value;
                    }
                    if (de.Key.Equals("CC_SK_ENV"))
                    {
                        config.AccessKeySecret = (string)de.Value;
                    }
                }
                config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
                config.RegionId = "cn-shanghai";
                config.Type = "access_key";
    
                // 以下为内网(VPC)访问方式
                // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
                // config.EndpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
                // config.Endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
                Client client = new Client(config);
                DetailRequest request = new DetailRequest();
                // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
                request.InstanceName = "XXXXXXXXXXX";
                try
                {
                    DetailResponse response = client.Detail(request);
                    String result = Newtonsoft.Json.JsonConvert.SerializeObject(response.Body);
                    Console.WriteLine("result:" + result);
                }
                catch (TeaUnretryableException e)
                {
                    Console.WriteLine("InnerException结果:" + e.InnerException.Message);
                    Console.WriteLine("Data结果:" + e.Data);
                    Console.WriteLine("Message结果:" + e.Message);
                    Console.WriteLine("打印String:" + e.ToString());
                }
            }
        }
    }

  • 结果示例

    {
      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接口

  • 代码示例

    using AlibabaCloud.OpenApiClient.Models;
    using AlibabaCloud.SDK.ImageSearch20201214.Models;
    using AlibabaCloud.SDK.ImageSearch20201214;
    using AlibabaCloud.TeaUtil.Models;
    using System;
    using System.IO;
    namespace Test
    {
        class DumpMeta
        {
            static void Main(string[] args)
            {
                Config config = new Config();
                // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
                //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
                //强烈建议不要把AccessKey IDAccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
                //本示例以将AccessKey IDAccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
                IDictionary environmentVariables = Environment.GetEnvironmentVariables();
                foreach (DictionaryEntry de in environmentVariables)
                {
                    if (de.Key.Equals("CC_AK_ENV")) {
                        config.AccessKeyId = (string)de.Value;
                    }
                    if (de.Key.Equals("CC_SK_ENV"))
                    {
                        config.AccessKeySecret = (string)de.Value;
                    }
                }
                config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
                config.RegionId = "cn-shanghai";
                config.Type = "access_key";
    
                // 以下为内网(VPC)访问方式
                // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
                // config.EndpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
                // config.Endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
                Client client = new Client(config);
                DumpMetaRequest request = new DumpMetaRequest();
                // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
                request.InstanceName = "XXXXXXXXXXX";
                try
                {
                    DumpMetaResponse response = client.DumpMeta(request);
                    String result = Newtonsoft.Json.JsonConvert.SerializeObject(response.Body);
                    Console.WriteLine("result:" + result);
                }
                catch (TeaUnretryableException e)
                {
                    Console.WriteLine("InnerException结果:" + e.InnerException.Message);
                    Console.WriteLine("Data结果:" + e.Data);
                    Console.WriteLine("Message结果:" + e.Message);
                    Console.WriteLine("打印String:" + e.ToString());
                }
            }
        }
    }

  • 结果示例

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

DumpMetaList接口

  • 代码示例

    using AlibabaCloud.OpenApiClient.Models;
    using AlibabaCloud.SDK.ImageSearch20201214.Models;
    using AlibabaCloud.SDK.ImageSearch20201214;
    using AlibabaCloud.TeaUtil.Models;
    using System;
    using System.IO;
    namespace Test
    {
        class DumpMetaList
        {
            static void Main(string[] args)
            {
                Config config = new Config();
                // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
                //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
                //强烈建议不要把AccessKey IDAccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
                //本示例以将AccessKey IDAccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
                IDictionary environmentVariables = Environment.GetEnvironmentVariables();
                foreach (DictionaryEntry de in environmentVariables)
                {
                    if (de.Key.Equals("CC_AK_ENV")) {
                        config.AccessKeyId = (string)de.Value;
                    }
                    if (de.Key.Equals("CC_SK_ENV"))
                    {
                        config.AccessKeySecret = (string)de.Value;
                    }
                }
                config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
                config.RegionId = "cn-shanghai";
                config.Type = "access_key";
    
                // 以下为内网(VPC)访问方式
                // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
                // config.EndpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
                // config.Endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
                Client client = new Client(config);
                DumpMetaListRequest request = new DumpMetaListRequest();
                // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
                request.InstanceName = "XXXXXXXXXXX";
                // 选填,元数据导出任务id。
                request.Id = 567;
                // 选填,返回结果起始位置,默认1。
                request.PageNumber = 1;
                // 选填,返回结果数量,默认20。
                request.PageSize = 1;
                try
                {
                    DumpMetaListResponse response = client.DumpMetaList(request);
                    String result = Newtonsoft.Json.JsonConvert.SerializeObject(response.Body);
                    Console.WriteLine("result:" + result);
                }
                catch (TeaUnretryableException e)
                {
                    Console.WriteLine("InnerException结果:" + e.InnerException.Message);
                    Console.WriteLine("Data结果:" + e.Data);
                    Console.WriteLine("Message结果:" + e.Message);
                    Console.WriteLine("打印String:" + e.ToString());
                }
            }
        }
    }

  • 结果示例

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

BatchTask接口

  • 代码示例

                // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
                //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
                //强烈建议不要把AccessKey IDAccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
                //本示例以将AccessKey IDAccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
                IDictionary environmentVariables = Environment.GetEnvironmentVariables();
                foreach (DictionaryEntry de in environmentVariables)
                {
                    if (de.Key.Equals("CC_AK_ENV")) {
                        config.AccessKeyId = (string)de.Value;
                    }
                    if (de.Key.Equals("CC_SK_ENV"))
                    {
                        config.AccessKeySecret = (string)de.Value;
                    }
                }
                config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
                config.RegionId = "cn-shanghai";
                config.Type = "access_key";
    
                // 以下为内网(VPC)访问方式
                // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
                // config.EndpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
                // config.Endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
                Client client = new Client(config);
                IncreaseInstanceRequest request = new IncreaseInstanceRequest();
                // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
                request.InstanceName = "XXXXXXXXXXX";
                // 必填,oss 中 bucket名称。
                request.BucketName = "bucketName";
                // 必填,路径,必须 / 开头, 非 / 结尾。
                // 此路径下需要提前准备好 increment.meta 文件,可参考,用户指南下的批量操作文档。
                request.Path = "/public/xx";
                // 选填,请求成功回调地址,http(s)://。
                request.CallbackAddress = "xxx";
                try
                {
                    IncreaseInstanceResponse response = client.IncreaseInstance(request);
                    String result = Newtonsoft.Json.JsonConvert.SerializeObject(response.Body);
                    Console.WriteLine("result:" + result);
                }
                catch (TeaUnretryableException e)
                {
                    Console.WriteLine("InnerException结果:" + e.InnerException.Message);
                    Console.WriteLine("Data结果:" + e.Data);
                    Console.WriteLine("Message结果:" + e.Message);
                    Console.WriteLine("打印String:" + e.ToString());
                }
            }
        }
    }

  • 结果示例

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

BatchTaskList接口

  • 代码示例

    using AlibabaCloud.OpenApiClient.Models;
    using AlibabaCloud.SDK.ImageSearch20201214.Models;
    using AlibabaCloud.SDK.ImageSearch20201214;
    using AlibabaCloud.TeaUtil.Models;
    using System;
    using System.IO;
    namespace Test
    {
        class BatchTaskList
        {
            static void Main(string[] args)
            {
                Config config = new Config();
                // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
                //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
                //强烈建议不要把AccessKey IDAccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
                //本示例以将AccessKey IDAccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
                IDictionary environmentVariables = Environment.GetEnvironmentVariables();
                foreach (DictionaryEntry de in environmentVariables)
                {
                    if (de.Key.Equals("CC_AK_ENV")) {
                        config.AccessKeyId = (string)de.Value;
                    }
                    if (de.Key.Equals("CC_SK_ENV"))
                    {
                        config.AccessKeySecret = (string)de.Value;
                    }
                }
                config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
                config.RegionId = "cn-shanghai";
                config.Type = "access_key";
    
                // 以下为内网(VPC)访问方式
                // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
                // config.EndpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
                // config.Endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
                Client client = new Client(config);
                IncreaseListRequest request = new IncreaseListRequest();
                // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
                request.InstanceName = "XXXXXXXXXXX";
                // 选填,元数据导出任务id。
                request.Id = 567;
                // 必填,oss 中 bucket名称。
                request.BucketName = "bucketName";
                // 必填,路径,必须 / 开头, 非 / 结尾。
                request.Path = "/public/xx";
                // 选填,返回结果起始位置,默认1。
                request.PageNumber = 1;
                // 选填,返回结果数量,默认20。
                request.PageSize = 1;
                try
                {
                    IncreaseListResponse response = client.IncreaseList(request);
                    String result = Newtonsoft.Json.JsonConvert.SerializeObject(response.Body);
                    Console.WriteLine("result:" + result);
                }
                catch (TeaUnretryableException e)
                {
                    Console.WriteLine("InnerException结果:" + e.InnerException.Message);
                    Console.WriteLine("Data结果:" + e.Data);
                    Console.WriteLine("Message结果:" + e.Message);
                    Console.WriteLine("打印String:" + e.ToString());
                }
            }
        }
    }

  • 结果示例

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

CompareSimilarByImage接口

  • 代码示例

    using AlibabaCloud.OpenApiClient.Models;
    using AlibabaCloud.SDK.ImageSearch20201214.Models;
    using AlibabaCloud.SDK.ImageSearch20201214;
    using AlibabaCloud.TeaUtil.Models;
    using System;
    using System.IO;
    namespace Test
    {
        class CompareSimilarByImage
        {
            static void Main(string[] args)
            {
                // Console.WriteLine("Hello World!");
                Config config = new Config();
                // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
                //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
                //强烈建议不要把AccessKey IDAccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
                //本示例以将AccessKey IDAccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
                IDictionary environmentVariables = Environment.GetEnvironmentVariables();
                foreach (DictionaryEntry de in environmentVariables)
                {
                    if (de.Key.Equals("CC_AK_ENV")) {
                        config.AccessKeyId = (string)de.Value;
                    }
                    if (de.Key.Equals("CC_SK_ENV"))
                    {
                        config.AccessKeySecret = (string)de.Value;
                    }
                }
                config.Endpoint = "imagesearch.cn-shanghai.aliyuncs.com";
                config.RegionId = "cn-shanghai";
                config.Type = "access_key";
    
                // 以下为内网(VPC)访问方式
                // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
                // config.EndpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
                // config.Endpoint = "imagesearch-vpc.cn-shanghai.aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则为"imagesearch-vpc.cn-hangzhou.aliyuncs.com"
                
                Client client = new Client(config);
                FileStream fs1 = File.OpenRead("D:/111.jpg");
                FileStream fs2 = File.OpenRead("D:/222.jpg");
                CompareSimilarByImageAdvanceRequest request = new CompareSimilarByImageAdvanceRequest();
               
                // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
                request.InstanceName = "XXXXXXXXXXXXXXXXXXXXXXXXX";
                // 图片内容,最多支持 4MB大小图片以及5s的传输等待时间。当前仅支持PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、PPM格式图片;
                // 对于商品、商标、通用图片搜索,图片长和宽的像素必须都大于等于100且小于等于4096;
                // 对于布料搜索,图片长和宽的像素必须都大于等于100且小于等于4096;
                // 图像中不能带有旋转信息
                request.PrimaryPicContentObject = fs1;
                request.SecondaryPicContentObject = fs2;
                
                RuntimeOptions runtimeObject = new RuntimeOptions();
                try
                {
                    CompareSimilarByImageResponse response = client.CompareSimilarByImageAdvance(request, runtimeObject);
                    Console.WriteLine("result:" + Newtonsoft.Json.JsonConvert.SerializeObject(response));
                }
                catch (TeaUnretryableException e)
                {
                    Console.WriteLine("InnerException结果:" + e.InnerException.Message);
                    Console.WriteLine("Data结果:" + e.Data);
                    Console.WriteLine("Message结果:" + e.Message);
                    Console.WriteLine("打印String:" + e.ToString());
                }
            }
        }
    }
  • 结果示例

    {
        "Headers": {
            "date": "Mon, 11 Jan 2021 06:57:16 GMT",
            "connection": "keep-alive",
            "access-control-allow-origin": "*",
            "access-control-allow-methods": "POST, GET, OPTIONS",
            "access-control-allow-headers": "X-Requested-With, X-Sequence, _aop_secret, _aop_signature",
            "access-control-max-age": "172800",
            "x-acs-request-id": "6D32C931-D584-4927-938A-6053AE9B630D"
        },
        "Body": {
            "Message": "success",
            "RequestId": "6D32C931-D584-4927-938A-6053AE9B630D",
            "Code": 0,
            "Score": 0.82,
            "Success": true
        }
    }