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

准备工作

  • 在安装和使用阿里云SDK前,确保您已经注册阿里云账号并生成访问密钥(AccessKey)。详情请参见创建AccessKey
  • 安装.NET SDK核心库。
    • 使用依赖包工具安装(推荐)。

      您可以通过NuGet程序包管理器来安装,在解决方案资源管理器面板中,右键单击您的项目选择管理NuGet程序包菜单,在打开的NuGet管理面板中单击浏览选项卡输入aliyun-net-sdk-core,选择并单击安装即可。

    • 或通过.NET CLI工具来安装核心库。
       dotnet add package aliyun-net-sdk-core
    • 自行下载安装。

      您可以使用git clone或其它手段下载aliyun-net-sdk-core并自行添加解决方案。

  • 安装图像搜索.NET SDK。
    • 使用依赖包工具安装(推荐)。

      您可以通过NuGet程序包管理器来安装,在解决方案资源管理器面板中,右键单击您的项目选择管理NuGet程序包菜单,在打开的NuGet管理面板中单击浏览选项卡输入aliyun-net-sdk-imagesearch,选择并单击安装即可。

    • 通过.NET CLI工具来安装核心库。
       dotnet add package aliyun-net-sdk-imagesearch
    • 自行下载安装。

      您可以使用git clone或其它手段下载aliyun-net-sdk-imagesearch并自行添加解决方案。

代码示例

完整代码示例如下。
using System;
using System.IO;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.ImageSearch.Model.V20190325;
namespace Test
{
    class Demo
    {
        static void Main(string[] args)
        {
            //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
            //强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
            //本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
            IDictionary environmentVariables = Environment.GetEnvironmentVariables();
            string ak = "";            
            string sk = "";
            foreach (DictionaryEntry de in environmentVariables)
            {
                if (de.Key.Equals("CC_AK_ENV")) {
                    ak = (string)de.Value;
                }
                if (de.Key.Equals("CC_SK_ENV"))
                {
                    sk = (string)de.Value;
                }
            }
            DefaultProfile profile = DefaultProfile.GetProfile("<region>", ak, sk);
            profile.AddEndpoint("<region>", "<region>", "ImageSearch", "imagesearch.<region>aliyuncs.com");
            IAcsClient client = new DefaultAcsClient(profile);
          
            // 添加图片
            AddImageRequest addRequest = new AddImageRequest();
            addRequest.InstanceName = "demo";
            addRequest.ProductId = "test";
            addRequest.PicName = "test";
            byte[] img = System.IO.File.ReadAllBytes("c:/demo.jpg");
            string pic = Convert.ToBase64String(img);
            addRequest.PicContent = pic;
            AddImageResponse addResponse = client.GetAcsResponse(addRequest);
            Console.WriteLine(addResponse.RequestId);
          
          // 查询图片
            SearchImageRequest searchRequest = new SearchImageRequest();
            searchRequest.InstanceName = "demo";
            searchRequest.Type = "searchByName";
            searchRequest.ProductId = "test";
            searchRequest.PicName = "test";
            SearchImageResponse searchResponse = client.GetAcsResponse(searchRequest);
            Console.WriteLine(searchResponse.RequestId);
          
            // 删除图片
            DeleteImageRequest deleteRequest = new DeleteImageRequest();
            deleteRequest.InstanceName = "demo";
            deleteRequest.ProductId = "test";
            DeleteImageResponse deleteResponse = client.GetAcsResponse(deleteRequest);
            Console.WriteLine(deleteResponse.RequestId);
        }
    }
}