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

准备工作

  • 在安装和使用阿里云SDK前,确保您已经注册阿里云账号并生成访问密钥(AccessKey)。具体请参见创建AccessKey
  • 安装Python SDK核心库。
    • 使用依赖包工具安装(推荐)。
      执行以下命令,安装阿里云SDK核心库:
      pip install aliyun-python-sdk-core
    • 自行下载安装。

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

  • 安装图像搜索Python SDK。
    • 使用依赖包工具安装(推荐)。
      执行以下命令,安装图像搜索Python SDK:
      pip install aliyun-python-sdk-imagesearch
    • 自行下载安装。

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

代码示例

完整代码示例如下。
# -*- coding: utf8 -*-
from aliyunsdkcore.client import AcsClient
import base64
import aliyunsdkimagesearch.request.v20190325.AddImageRequest as AddImageRequest
import aliyunsdkimagesearch.request.v20190325.DeleteImageRequest as DeleteImageRequest
import aliyunsdkimagesearch.request.v20190325.SearchImageRequest as SearchImageRequest
import os

#阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
#强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
#本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。

# 创建 AcsClient 实例
client = AcsClient(os.environ['CC_AK_ENV'], os.environ['CC_SK_ENV'], "<region>")
# 添加图片
request = AddImageRequest.AddImageRequest()
request.set_endpoint("imagesearch.<region>.aliyuncs.com")
request.set_InstanceName("demo")
request.set_ProductId("test")
request.set_PicName("test")
with open('/home/admin/demo.jpg', 'rb') as imgfile:
    encoded_pic_content = base64.b64encode(imgfile.read())
    request.set_PicContent(encoded_pic_content)
response = client.do_action_with_exception(request)
print(response)
# 搜索图片
request = SearchImageRequest.SearchImageRequest()
request.set_endpoint("imagesearch.<region>.aliyuncs.com")
request.set_InstanceName("demo")
with open('/home/admin/demo.jpg', 'rb') as imgfile:
    encoded_pic_content = base64.b64encode(imgfile.read())
    request.set_PicContent(encoded_pic_content)
response = client.do_action_with_exception(request)
print(response)
# 删除图片
request = DeleteImageRequest.DeleteImageRequest()
request.set_endpoint("imagesearch.<region>.aliyuncs.com")
request.set_InstanceName("demo")
request.set_ProductId("test")
response = client.do_action_with_exception(request)
print(response)