本文介绍图像搜索服务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)