imagesearch-20200212/alibabacloud_imagesearch20200212/client.py (160 lines of code) (raw):

# -*- coding: utf-8 -*- # This file is auto-generated, don't edit it. Thanks. from alibabacloud_tea_rpc.client import Client as RPCClient from alibabacloud_imagesearch20200212 import models as image_search_20200212_models from alibabacloud_tea_util.client import Client as UtilClient from alibabacloud_tea_rpc import models as rpc_models from alibabacloud_openplatform20191219.client import Client as OpenPlatformClient from alibabacloud_openplatform20191219 import models as open_platform_models from alibabacloud_oss_sdk import models as oss_models from alibabacloud_tea_fileform import models as file_form_models from alibabacloud_oss_util import models as ossutil_models from alibabacloud_rpc_util.client import Client as RPCUtilClient from alibabacloud_oss_sdk.client import Client as OSSClient from alibabacloud_endpoint_util.client import Client as EndpointUtilClient class Client(RPCClient): def __init__(self, config): super(Client, self).__init__(config) self._endpoint_rule = "" self.check_config(config) self._endpoint = self.get_endpoint("imagesearch", self._region_id, self._endpoint_rule, self._network, self._suffix, self._endpoint_map, self._endpoint) def search_image_by_name(self, request, runtime): UtilClient.validate_model(request) return image_search_20200212_models.SearchImageByNameResponse().from_map(self.do_request("SearchImageByName", "HTTPS", "POST", "2020-02-12", "AK", None, request.to_map(), runtime)) def search_image_by_pic(self, request, runtime): UtilClient.validate_model(request) return image_search_20200212_models.SearchImageByPicResponse().from_map(self.do_request("SearchImageByPic", "HTTPS", "POST", "2020-02-12", "AK", None, request.to_map(), runtime)) def search_image_by_pic_advance(self, request, runtime): # Step 0: init client access_key_id = self._credential.get_access_key_id() access_key_secret = self._credential.get_access_key_secret() auth_config = rpc_models.Config( access_key_id=access_key_id, access_key_secret=access_key_secret, type="access_key", endpoint="openplatform.aliyuncs.com", protocol=self._protocol, region_id=self._region_id ) auth_client = OpenPlatformClient(auth_config) auth_request = open_platform_models.AuthorizeFileUploadRequest( product="ImageSearch", region_id=self._region_id ) auth_response = open_platform_models.AuthorizeFileUploadResponse( ) oss_config = oss_models.Config( access_key_secret=access_key_secret, type="access_key", protocol=self._protocol, region_id=self._region_id ) oss_client = None file_obj = file_form_models.FileField( ) oss_header = oss_models.PostObjectRequestHeader( ) upload_request = oss_models.PostObjectRequest( ) oss_runtime = ossutil_models.RuntimeOptions( ) RPCUtilClient.convert(runtime, oss_runtime) search_image_by_picreq = image_search_20200212_models.SearchImageByPicRequest( ) RPCUtilClient.convert(request, search_image_by_picreq) auth_response = auth_client.authorize_file_upload_with_options(auth_request, runtime) oss_config.access_key_id = auth_response.access_key_id oss_config.endpoint = RPCUtilClient.get_endpoint(auth_response.endpoint, auth_response.use_accelerate, self._endpoint_type) oss_client = OSSClient(oss_config) file_obj = file_form_models.FileField( filename=auth_response.object_key, content=request.pic_content_object, content_type="" ) oss_header = oss_models.PostObjectRequestHeader( access_key_id=auth_response.access_key_id, policy=auth_response.encoded_policy, signature=auth_response.signature, key=auth_response.object_key, file=file_obj, success_action_status="201" ) upload_request = oss_models.PostObjectRequest( bucket_name=auth_response.bucket, header=oss_header ) oss_client.post_object(upload_request, oss_runtime) search_image_by_picreq.pic_content = "http://" + str(auth_response.bucket) + "." + str(auth_response.endpoint) + "/" + str(auth_response.object_key) + "" search_image_by_pic_resp = self.search_image_by_pic(search_image_by_picreq, runtime) return search_image_by_pic_resp def delete_image(self, request, runtime): UtilClient.validate_model(request) return image_search_20200212_models.DeleteImageResponse().from_map(self.do_request("DeleteImage", "HTTPS", "POST", "2020-02-12", "AK", None, request.to_map(), runtime)) def add_image(self, request, runtime): UtilClient.validate_model(request) return image_search_20200212_models.AddImageResponse().from_map(self.do_request("AddImage", "HTTPS", "POST", "2020-02-12", "AK", None, request.to_map(), runtime)) def add_image_advance(self, request, runtime): # Step 0: init client access_key_id = self._credential.get_access_key_id() access_key_secret = self._credential.get_access_key_secret() auth_config = rpc_models.Config( access_key_id=access_key_id, access_key_secret=access_key_secret, type="access_key", endpoint="openplatform.aliyuncs.com", protocol=self._protocol, region_id=self._region_id ) auth_client = OpenPlatformClient(auth_config) auth_request = open_platform_models.AuthorizeFileUploadRequest( product="ImageSearch", region_id=self._region_id ) auth_response = open_platform_models.AuthorizeFileUploadResponse( ) oss_config = oss_models.Config( access_key_secret=access_key_secret, type="access_key", protocol=self._protocol, region_id=self._region_id ) oss_client = None file_obj = file_form_models.FileField( ) oss_header = oss_models.PostObjectRequestHeader( ) upload_request = oss_models.PostObjectRequest( ) oss_runtime = ossutil_models.RuntimeOptions( ) RPCUtilClient.convert(runtime, oss_runtime) add_imagereq = image_search_20200212_models.AddImageRequest( ) RPCUtilClient.convert(request, add_imagereq) auth_response = auth_client.authorize_file_upload_with_options(auth_request, runtime) oss_config.access_key_id = auth_response.access_key_id oss_config.endpoint = RPCUtilClient.get_endpoint(auth_response.endpoint, auth_response.use_accelerate, self._endpoint_type) oss_client = OSSClient(oss_config) file_obj = file_form_models.FileField( filename=auth_response.object_key, content=request.pic_content_object, content_type="" ) oss_header = oss_models.PostObjectRequestHeader( access_key_id=auth_response.access_key_id, policy=auth_response.encoded_policy, signature=auth_response.signature, key=auth_response.object_key, file=file_obj, success_action_status="201" ) upload_request = oss_models.PostObjectRequest( bucket_name=auth_response.bucket, header=oss_header ) oss_client.post_object(upload_request, oss_runtime) add_imagereq.pic_content = "http://" + str(auth_response.bucket) + "." + str(auth_response.endpoint) + "/" + str(auth_response.object_key) + "" add_image_resp = self.add_image(add_imagereq, runtime) return add_image_resp def get_endpoint(self, product_id, region_id, endpoint_rule, network, suffix, endpoint_map, endpoint): if not UtilClient.empty(endpoint): return endpoint if not UtilClient.is_unset(endpoint_map) and not UtilClient.empty(endpoint_map.get('regionId')): return endpoint_map.get('regionId') return EndpointUtilClient.get_endpoint_rules(product_id, region_id, endpoint_rule, network, suffix)