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

说明

如需了解更多产品详情和获取技术支持,请单击在线咨询或通过钉钉群(35035130)联系我们。

接口列表

接口名称

接口说明

Add

增加图片。

SearchImageByPic

使用图片进行搜索。

SearchImageByName

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

Delete

删除图片。

UpdateImage

修改图片。

Detail

查询实例信息。

DumpMeta

元信息导出任务。

DumpMetaList

元信息导出任务列表。

BatchTask

批量任务。

BatchTaskList

批量任务列表。

准备工作

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

说明

PHP: >=5.5

composer镜像

https://developer.aliyun.com/composer

安装依赖

  • 使用Composer,获取SDK。

    composer require alibabacloud/imagesearch-20201214
  • 使用composer.json文件示例。

    {
       "require": {
           "alibabacloud/imagesearch-20201214": "^4.0"    
        }
    }

依赖相关代码示例如下。

declare (strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use AlibabaCloud\SDK\ImageSearch\V20201214\ImageSearch;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\AddImageAdvanceRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\SearchImageByPicAdvanceRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\SearchImageByNameRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\DeleteImageRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\UpdateImageRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\DetailRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\DumpMetaRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\DumpMetaListRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\IncreaseInstanceRequest;
use AlibabaCloud\SDK\ImageSearch\V20201214\Models\IncreaseListRequest;
use AlibabaCloud\Tea\Exception\TeaUnableRetryError;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
use GuzzleHttp\Psr7\Stream;

Add接口

  • 代码示例

    function _addImage()
    {
        $config = new Config();
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        //强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        //本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        $config->accessKeyId = getenv("CC_AK_ENV");
        $config->accessKeySecret = getenv("CC_SK_ENV");
        // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为regionId="cn-hangzhou"
        $config->regionId = "<regionId>";
        // 请更换成您购买实例的区域,例如购买的是杭州区域,则endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
        $config->endpoint = "imagesearch.[regionId].aliyuncs.com";
    
        // 以下为内网(VPC)访问方式
        // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
        // $config->endpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
        // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
     
        $client = new ImageSearch($config);
        $request = new AddImageAdvanceRequest();
        // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
        $request->instanceName = "xxxxxx";
        // 必填,商品id,最多支持 512个字符。
        // 一个商品可有多张图片。
        $request->productId = "testPhp";
        // 必填,图片名称,最多支持 512个字符。
        // 1. ProductId + PicName唯一确定一张图片。
        // 2. 如果多次添加图片具有相同的ProductId + PicName,以最后一次添加为准,前面添加的图片将被覆盖。
        $request->picName = "testPhp";
        // 选填,图片类目。
        // 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取 。
        // 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
        $request->categoryId = 3;
        // 选填,用户自定义的内容,最多支持4096个字符。
        // 查询时会返回该字段。例如可添加图片的描述等文本。
        $request->customContent = "this is a simple test";
        // 选填,整数类型属性,可用于查询时过滤,查询时会返回该字段。
        //  例如不同的站点的图片/不同用户的图片,可以设置不同的IntAttr,查询时通过过滤来达到隔离的目的
        $request->intAttr = 56;
        // 选填,字符串类型属性,最多支持 128个字符。可用于查询时过滤,查询时会返回该字段。
        $request->strAttr = "test";
        // 选填,是否需要进行主体识别,默认为true。
        // 1.为true时,由系统进行主体识别,以识别的主体进行搜索,主体识别结果可在Response中获取。
        // 2. 为false时,则不进行主体识别,以整张图进行搜索。
        // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
        $request->crop = true;
        // 选填,图片的主体区域,格式为 x1,x2,y1,y2, 其中 x1,y1 是左上角的点,x2,y2是右下角的点。设置的region 区域不要超过图片的边界。
        // 若用户设置了Region,则不论Crop参数为何值,都将以用户输入Region进行搜索。
        // 对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
        $request->region = "167,467,221,407";
        // 图片内容,最多支持 4MB大小图片以及5s的传输等待时间。当前仅支持PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、PPM格式图片;
        // 对于商品、商标、通用图片搜索,图片长和宽的像素必须都大于等于100且小于等于4096;
        // 对于布料搜索,图片长和宽的像素必须都大于等于448且小于等于4096;
        // 图像中不能带有旋转信息
    
        // 使用URL方式释放下方注释即可。
        // composer require alibabacloud/darabonba-stream
        // use AlibabaCloud\Darabonba\Stream\StreamUtil; 
        // $imageStream = StreamUtil::readFromFilePath("<fileUrl>");  
    
        // 使用图片file新增图片 
        $imageStream = new Stream(fopen("<filePath>", 'r+'));
        $request->picContentObject = $imageStream;
        $runtime = new RuntimeOptions();
        $runtime->maxIdleConns = 3;
        $runtime->connectTimeout = 3000;
        $runtime->readTimeout = 3000;
        try {
            $response = $client->addImageAdvance($request, $runtime);
            var_dump($response->toMap());
          } catch (TeaUnableRetryError $e) {
            var_dump($e->getLastException(), $e->getLastRequest());
        } 
    }

  • 结果示例

    {
      ["requestId"]=>
      string(36) "242CB8B7-DD36-42ED-9A76-37915DC7ED81"
      ["success"]=>
      bool(true)
      ["message"]=>
      string(7) "success"
      ["code"]=>
      int(0)
      ["picInfo"]=>
      array(2) {
        ["CategoryId"]=>
        int(0)
        ["Region"]=>
        string(15) "167,477,221,407"
      }
      ["_name":protected]=>
      array(5) {
        ["requestId"]=>
        string(9) "RequestId"
        ["success"]=>
        string(7) "Success"
        ["message"]=>
        string(7) "Message"
        ["code"]=>
        string(4) "Code"
        ["picInfo"]=>
        string(7) "PicInfo"
      }
      ["_required":protected]=>
      array(0) {
      }
    }

SearchImageByPic接口

  • 代码示例

    function _getImageByPic()
    {
        $config = new Config();
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        //强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        //本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        $config->accessKeyId = getenv("CC_AK_ENV");
        $config->accessKeySecret = getenv("CC_SK_ENV");
        // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为regionId="cn-hangzhou"
        $config->regionId = "<regionId>";
        // 请更换成您购买实例的区域,例如购买的是杭州区域,则endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
        $config->endpoint = "imagesearch.[regionId].aliyuncs.com";
    
        // 以下为内网(VPC)访问方式
        // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
        // $config->endpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
        // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
        $client = new ImageSearch($config);
        $request = new SearchImageByPicAdvanceRequest();
        // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
        $request->instanceName = "xxxxx";    
        // 图片内容,最多支持 4MB大小图片以及5s的传输等待时间。当前仅支持PNG、JPG、JPEG、BMP、GIF、WEBP、TIFF、PPM格式图片;
        // 对于商品、商标、通用图片搜索,图片长和宽的像素必须都大于等于100且小于等于4096;
        // 对于布料搜索,图片长和宽的像素必须都大于等于448且小于等于4096;
        // 图像中不能带有旋转信息
    
        // 使用URL方式释放下方注释即可。
        // composer require alibabacloud/darabonba-stream
        // use AlibabaCloud\Darabonba\Stream\StreamUtil; 
        // $imageStream = StreamUtil::readFromFilePath("<fileUrl>");   
    
        // 通过图片file查询相似图片
        $imageStream = new Stream(fopen("<filePath>", 'r+'));
        $request->picContentObject = $imageStream;   
        // 选填,图片类目。
        // 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取。
        // 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
        $request->categoryId = 3;
        // 1.为true时,由系统进行主体识别,以识别的主体进行搜索,主体识别结果可在Response中获取。
        // 2. 为false时,则不进行主体识别,以整张图进行搜索。
        // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
        $request->crop = true;
        // 选填,图片的主体区域,格式为 x1,x2,y1,y2, 其中 x1,y1 是左上角的点,x2,y2是右下角的点。设置的region 区域不要超过图片的边界。
        // 若用户设置了Region,则不论Crop参数为何值,都将以用户输入Region进行搜索。
        // 对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
        $request->region = "167,467,221,407";
        // 选填,过滤条件// int_attr支持的操作符有>、>=、<、<=、=,str_attr支持的操作符有=和!=,多个条件之支持AND和OR进行连接。
        // 示例:
        //  1. 根据IntAttr过滤结果,int_attr>=100
        //  2. 根据StrAttr过滤结果,str_attr!="value1"
        //  3. 根据IntAttr和StrAttr联合过滤结果,int_attr=1000 AND str_attr="value1"
        $request->filter = "int_attr=56 AND str_attr =\"test\"";
        $runtime = new RuntimeOptions();
        $runtime->maxIdleConns = 3;
        $runtime->connectTimeout = 3000;
        $runtime->readTimeout = 3000;
        try {
            $response = $client->searchImageByPicAdvance($request, $runtime);
            var_dump($response->toMap());
        } catch (TeaUnableRetryError $e) {
            var_dump($e->getLastException(), $e->getLastRequest());
        } catch (Exception $e) {
        }
    }

  • 结果示例

    {
      ["requestId"]=>
      string(36) "453517A3-7D00-476E-A946-8CC3B9DC6FA1"
      ["success"]=>
      bool(true)
      ["code"]=>
      int(0)
      ["msg"]=>
      string(7) "success"
      ["auctions"]=>
      array(5) {
        [0]=>
        array(4) {
          ["CategoryId"]=>
          int(0)
          ["PicName"]=>
          string(7) "vae.jpg"
          ["ProductId"]=>
          string(4) "1000"
          ["SortExprValues"]=>
          string(22) "7.33136443711219e+24;0"
          ["Score"]=>
          float(1)
        }
        [1]=>
        array(4) {
          ["CategoryId"]=>
          int(0)
          ["PicName"]=>
          string(4) "test"
          ["ProductId"]=>
          string(4) "test"
          ["SortExprValues"]=>
          string(22) "7.33136443711219e+24;0"
          ["Score"]=>
          float(1)
        }
      ........
        [4]=>
        array(4) {
          ["CategoryId"]=>
          int(0)
          ["PicName"]=>
          string(4) "test"
          ["ProductId"]=>
          string(4) "1000"
          ["SortExprValues"]=>
          string(22) "7.33136443711219e+24;0"
          ["Score"]=>
          float(1)
        }
      }
      ["head"]=>
      array(3) {
        ["DocsFound"]=>
        int(5)
        ["DocsReturn"]=>
        int(5)
        ["SearchTime"]=>
        int(171)
      }
      ["picInfo"]=>
      array(3) {
        ["CategoryId"]=>
        int(0)
        ["MultiRegion"]=>
          array(1) {
            [0]=>
            array(1) {
              ["Region"]=>
              string(15) "134,705,187,785"
            }
         }
        ["AllCategories"]=>
        array(14) {
          [0]=>
          array(2) {
            ["Id"]=>
            int(0)
            ["Name"]=>
            string(4) "Tops"
          }
      ........
          [13]=>
          array(2) {
            ["Id"]=>
            int(88888888)
            ["Name"]=>
            string(5) "Other"
          }
        }
        ["Region"]=>
        string(15) "167,477,221,407"
      }
      ["_name":protected]=>
      array(7) {
        ["requestId"]=>
        string(9) "RequestId"
        ["success"]=>
        string(7) "Success"
        ["code"]=>
        string(4) "Code"
        ["msg"]=>
        string(3) "Msg"
        ["auctions"]=>
        string(8) "Auctions"
        ["head"]=>
        string(4) "Head"
        ["picInfo"]=>
        string(7) "PicInfo"
      }
      ["_required":protected]=>
      array(0) {
      }
    }

SearchImageByName接口

  • 代码示例

    function _getImageByName()
    {
        $config = new Config();
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        //强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        //本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        $config->accessKeyId = getenv("CC_AK_ENV");
        $config->accessKeySecret = getenv("CC_SK_ENV");
        // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为regionId="cn-hangzhou"
        $config->regionId = "<regionId>";
        // 请更换成您购买实例的区域,例如购买的是杭州区域,则endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
        $config->endpoint = "imagesearch.[regionId].aliyuncs.com";
    
        // 以下为内网(VPC)访问方式
        // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
        // $config->endpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
        // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
        $client = new ImageSearch($config);
        $request = new SearchImageByNameRequest();
        // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
        $request->instanceName = "xxxxxxx";
        // 必填,商品id,最多支持 512个字符。
        // 一个商品可有多张图片。
        $request->productId = "testPhp";
        // 必填,图片名称,最多支持 512个字符。
        // 1. ProductId + PicName唯一确定一张图片。
        // 2. 如果多次添加图片具有相同的ProductId + PicName,以最后一次添加为准,前面添加的图片将被覆盖。
        $request->picName = "testPhp";    
        // 选填,图片类目。
        // 1. 对于商品搜索:若设置类目,则以设置的为准;若不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取。
        // 2. 对于布料、商标、通用搜索:不论是否设置类目,系统会将类目设置为88888888。
        $request->categoryId = 3;
        // 1.为true时,由系统进行主体识别,以识别的主体进行搜索,主体识别结果可在Response中获取。
        // 2. 为false时,则不进行主体识别,以整张图进行搜索。
        // 3.对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
        $request->crop = true;
        // 选填,图片的主体区域,格式为 x1,x2,y1,y2, 其中 x1,y1 是左上角的点,x2,y2是右下角的点。设置的region 区域不要超过图片的边界。
        // 若用户设置了Region,则不论Crop参数为何值,都将以用户输入Region进行搜索。
        // 对于布料图片搜索,此参数会被忽略,系统会以整张图进行搜索。
        $request->region = "167,467,221,407";
        // 选填,过滤条件// int_attr支持的操作符有>、>=、<、<=、=,str_attr支持的操作符有=和!=,多个条件之支持AND和OR进行连接。
        // 示例:
        //  1. 根据IntAttr过滤结果,int_attr>=100
        //  2. 根据StrAttr过滤结果,str_attr!="value1"
        //  3. 根据IntAttr和StrAttr联合过滤结果,int_attr=1000 AND str_attr="value1"
        $request->filter = "int_attr=56 AND str_attr =\"test\"";
     
        try {
            $response = $client->SearchImageByName($request);
            var_dump($response->toMap());
        } catch (TeaUnableRetryError $e) {
            var_dump($e->getLastException(), $e->getLastRequest());
        } catch (Exception $e) {
        }
    }

  • 结果示例

    ["requestId"]=>
      string(36) "9248A5FC-97AB-4A96-8764-C771CF61D9A1"
      ["success"]=>
      bool(true)
      ["code"]=>
      int(0)
      ["msg"]=>
      string(7) "success"
      ["auctions"]=>
      array(5) {
        [0]=>
        array(4) {
          ["CategoryId"]=>
          int(0)
          ["PicName"]=>
          string(7) "vae.jpg"
          ["ProductId"]=>
          string(4) "1000"
          ["SortExprValues"]=>
          string(22) "7.33136443711219e+24;0"
          ["Score"]=>
          float(1)
        }
      ........
        [4]=>
        array(4) {
          ["CategoryId"]=>
          int(0)
          ["PicName"]=>
          string(4) "test"
          ["ProductId"]=>
          string(4) "1000"
          ["SortExprValues"]=>
          string(22) "7.33136443711219e+24;0"
          ["Score"]=>
          float(1)
        }
      }
      ["head"]=>
      array(3) {
        ["DocsFound"]=>
        int(5)
        ["DocsReturn"]=>
        int(5)
        ["SearchTime"]=>
        int(21)
      }
      ["picInfo"]=>
      array(2) {
        ["CategoryId"]=>
        int(0)
        ["MultiRegion"]=>
          array(1) {
            [0]=>
            array(1) {
              ["Region"]=>
              string(15) "134,705,187,785"
            }
        }
        ["AllCategories"]=>
        array(14) {
          [0]=>
          array(2) {
            ["Id"]=>
            int(0)
            ["Name"]=>
            string(4) "Tops"
          }
          ........
          [13]=>
          array(2) {
            ["Id"]=>
            int(88888888)
            ["Name"]=>
            string(5) "Other"
          }
        }
      }
      ["_name":protected]=>
      array(7) {
        ["requestId"]=>
        string(9) "RequestId"
        ["success"]=>
        string(7) "Success"
        ["code"]=>
        string(4) "Code"
        ["msg"]=>
        string(3) "Msg"
        ["auctions"]=>
        string(8) "Auctions"
        ["head"]=>
        string(4) "Head"
        ["picInfo"]=>
        string(7) "PicInfo"
      }
      ["_required":protected]=>
      array(0) {
      }
    }

Delete接口

  • 代码示例

    function _deleteImage()
    {
        $config = new Config();
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        //强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        //本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        $config->accessKeyId = getenv("CC_AK_ENV");
        $config->accessKeySecret = getenv("CC_SK_ENV");
        // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为regionId="cn-hangzhou"
        $config->regionId = "<regionId>";
        // 请更换成您购买实例的区域,例如购买的是杭州区域,则endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
        $config->endpoint = "imagesearch.[regionId].aliyuncs.com";
    
        // 以下为内网(VPC)访问方式
        // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
        // $config->endpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
        // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
        $client = new ImageSearch($config);
        $request = new DeleteImageRequest();
        // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
        $request->instanceName = "xxxxxx";
        // 必填,图片名称,最多支持 512个字符。
        // 1. ProductId + PicName唯一确定一张图片。
        $request->productId = "test";
        // 2. 选填,图片名称。若不指定本参数,则删除ProductId下所有图片;若指定本参数,则删除ProductId+PicName指定的图片。
        $request->picName = "test";
          
        try {
            $response = $client->deleteImage($request);
            var_dump($response->toMap());
        } catch (TeaUnableRetryError $e) {
            var_dump($e->getLastException(), $e->getLastRequest());
          } catch (Exception $e) {
        }
    }

  • 结果示例

    {
      ["requestId"]=>
      string(36) "052ECD87-933D-4E65-94F7-F0C0947E41A1"
      ["success"]=>
      bool(true)
      ["message"]=>
      string(7) "success"
      ["code"]=>
      int(0)
      ["_name":protected]=>
      array(4) {
        ["requestId"]=>
        string(9) "RequestId"
        ["success"]=>
        string(7) "Success"
        ["message"]=>
        string(7) "Message"
        ["code"]=>
        string(4) "Code"
      }
      ["_required":protected]=>
      array(0) {
      }
    }

UpdateImage接口

  • 代码示例

    function _updateImage()
    {
        $config = new Config();
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        //强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        //本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        $config->accessKeyId = getenv("CC_AK_ENV");
        $config->accessKeySecret = getenv("CC_SK_ENV");
        // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为regionId="cn-hangzhou"
        $config->regionId = "<regionId>";
        // 请更换成您购买实例的区域,例如购买的是杭州区域,则endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
        $config->endpoint = "imagesearch.[regionId].aliyuncs.com";
    
        // 以下为内网(VPC)访问方式
        // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
        // $config->endpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
        // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
        $client = new ImageSearch($config);
        $request = new UpdateImageRequest();
        // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
        $request->instanceName = "xxxxxx";
        // 必填,商品ID 不可修改。
        $request->productId = "1";
        // 必填,图片名称,不可修改。
        $request->picName = "1";
        // 选填,整数类型属性,可用于查询时过滤,查询时会返回该字段。
        $request->intAttr = 10;
        // 选填,字符串类型属性,最多支持 128个字符。可用于查询时过滤,查询时会返回该字段。
        $request->strAttr = "test";
        // 选填,用户自定义的内容,最多支持4096个字符。
        $request->customContent = "这是一个测试说明";
          
        try {
            $response = $client->updateImage($request);
            var_dump($response->body->toMap());
        } catch (TeaUnableRetryError $e) {
            var_dump($e->getLastException(), $e->getLastRequest());
          } catch (Exception $e) {
        }
    }

  • 结果示例

    array(3) {
      ["Code"]=>
      int(0)
      ["RequestId"]=>
      string(36) "2CD69717-846D-167A-89AD-647213332248"
      ["Success"]=>
      bool(true)
    }

Detail接口

  • 代码示例

    function _detail()
    {
        $config = new Config();
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        //强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        //本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        $config->accessKeyId = getenv("CC_AK_ENV");
        $config->accessKeySecret = getenv("CC_SK_ENV");
        // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为regionId="cn-hangzhou"
        $config->regionId = "<regionId>";
        // 请更换成您购买实例的区域,例如购买的是杭州区域,则endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
        $config->endpoint = "imagesearch.[regionId].aliyuncs.com";
    
        // 以下为内网(VPC)访问方式
        // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
        // $config->endpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
        // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
        $client = new ImageSearch($config);
        $request = new DetailRequest();
        // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
        $request->instanceName = "xxxxxx";
          
        try {
            $response = $client->detail($request);
            var_dump($response->body->toMap());
        } catch (TeaUnableRetryError $e) {
            var_dump($e->getLastException(), $e->getLastRequest());
          } catch (Exception $e) {
        }
    }

  • 结果示例

    array(3) {
      ["Instance"]=>
      array(8) {
        ["Capacity"]=>
        int(10)
        ["Name"]=>
        string(19) "xxxxxxx"
        ["Qps"]=>
        int(1)
        ["Region"]=>
        string(11) "cn-shanghai"
        ["ServiceType"]=>
        int(0)
        ["TotalCount"]=>
        int(99999)
        ["UtcCreate"]=>
        int(1620382716000)
        ["UtcExpireTime"]=>
        int(1623081600000)
      }
      ["RequestId"]=>
      string(36) "41465B01-11B4-149D-BB6F-BB498B3C39F0"
      ["Success"]=>
      bool(true)
    }

DumpMeta接口

  • 代码示例

    function _dumpMeta()
    {
        $config = new Config();
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        //强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        //本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        $config->accessKeyId = getenv("CC_AK_ENV");
        $config->accessKeySecret = getenv("CC_SK_ENV");
        // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为regionId="cn-hangzhou"
        $config->regionId = "<regionId>";
        // 请更换成您购买实例的区域,例如购买的是杭州区域,则endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
        $config->endpoint = "imagesearch.[regionId].aliyuncs.com";
    
        // 以下为内网(VPC)访问方式
        // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
        // $config->endpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
        // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
        $client = new ImageSearch($config);
        $request = new DumpMetaRequest();
        // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
        $request->instanceName = "xxxxxx";
          
        try {
            $response = $client->dumpMeta($request);
            var_dump($response->body->toMap());
        } catch (TeaUnableRetryError $e) {
            var_dump($e->getLastException(), $e->getLastRequest());
          } catch (Exception $e) {
        }
    }

  • 结果示例

    array(3) {
      ["Data"]=>
      array(2) {
        ["DumpMetaStatus"]=>
        string(10) "PROCESSING"
        ["Id"]=>
        int(572)
      }
      ["RequestId"]=>
      string(36) "A1234E2C-C99E-122C-97D1-F30FE012533B"
      ["Success"]=>
      bool(true)
    }

DumpMetaList接口

  • 代码示例

    function _dumpMetaList()
    {
        $config = new Config();
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        //强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        //本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        $config->accessKeyId = getenv("CC_AK_ENV");
        $config->accessKeySecret = getenv("CC_SK_ENV");
        // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为regionId="cn-hangzhou"
        $config->regionId = "<regionId>";
        // 请更换成您购买实例的区域,例如购买的是杭州区域,则endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
        $config->endpoint = "imagesearch.[regionId].aliyuncs.com";
    
        // 以下为内网(VPC)访问方式
        // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
        // $config->endpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
        // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
        $client = new ImageSearch($config);
        $request = new DumpMetaListRequest();
        // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
        $request->instanceName = "xxxxxx";
        // 选填,元数据导出任务id。
        $request->id = 567;
        // 选填,返回结果起始位置,默认1。
        $request->pageNumber = 1;
        // 选填,返回结果数量,默认20。
        $request->pageSize = 1;
          
        try {
            $response = $client->dumpMetaList($request);
            var_dump($response->body->toMap());
        } catch (TeaUnableRetryError $e) {
            var_dump($e->getLastException(), $e->getLastRequest());
          } catch (Exception $e) {
        }
    }

  • 结果示例

    array(2) {
      ["Data"]=>
      array(4) {
        ["DumpMetaList"]=>
        array(1) {
          [0]=>
          array(7) {
            ["Code"]=>
            string(1) "0"
            ["Id"]=>
            int(567)
            ["MetaUrl"]=>
            string(208) "https://xx/xx"
            ["Msg"]=>
            string(7) "success"
            ["Status"]=>
            string(7) "SUCCESS"
            ["UtcCreate"]=>
            int(1639969113000)
            ["UtcModified"]=>
            int(1639969140000)
          }
        }
        ["PageNumber"]=>
        int(1)
        ["PageSize"]=>
        int(1)
        ["TotalCount"]=>
        int(1)
      }
      ["RequestId"]=>
      string(36) "46044936-BA2E-10E2-9C82-C00FF83862E5"
    }

BatchTask接口

  • 代码示例

    function _batchTask()
    {
        $config = new Config();
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        //强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        //本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        $config->accessKeyId = getenv("CC_AK_ENV");
        $config->accessKeySecret = getenv("CC_SK_ENV");
        // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为regionId="cn-hangzhou"
        $config->regionId = "<regionId>";
        // 请更换成您购买实例的区域,例如购买的是杭州区域,则endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
        $config->endpoint = "imagesearch.[regionId].aliyuncs.com";
    
        // 以下为内网(VPC)访问方式
        // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
        // $config->endpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
        // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
        $client = new ImageSearch($config);
        $request = new IncreaseInstanceRequest();
        // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
        $request->instanceName = "xxxxxx";
        // 必填 oss 中 bucket名称。
        $request->bucketName = "xxxx";
        // 必填,路径,必须 / 开头, 非 / 结尾。
        // 此路径下需要提前准备好 increment.meta 文件,可参考,用户指南下的批量操作文档。
        $request->path = "/public/xxx";
        // 选填,请求成功回调地址,http(s)://。
        $request->callbackAddress = "http://xxx/xxx";
          
        try {
            $response = $client->increaseInstance($request);
            var_dump($response->body->toMap());
        } catch (TeaUnableRetryError $e) {
            var_dump($e->getLastException(), $e->getLastRequest());
          } catch (Exception $e) {
        }
    }

  • 结果示例

    array(3) {
      ["Data"]=>
      array(2) {
        ["Id"]=>
        int(1475)
        ["IncrementStatus"]=>
        string(10) "PROCESSING"
      }
      ["RequestId"]=>
      string(36) "768C6C02-E3FE-1024-8461-103F7C529EFA"
      ["Success"]=>
      bool(true)
    }

BatchTaskList接口

  • 代码示例

    function _batchTaskList()
    {
        $config = new Config();
        // 创建AK/SK参考:https://help.aliyun.com/document_detail/116401.htm
        //阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
        //强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
        //本示例以将AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
        $config->accessKeyId = getenv("CC_AK_ENV");
        $config->accessKeySecret = getenv("CC_SK_ENV");
        // 请您更换成您购买实例的区域,例如您购买的实例区域为杭州,则更换为regionId="cn-hangzhou"
        $config->regionId = "<regionId>";
        // 请更换成您购买实例的区域,例如购买的是杭州区域,则endpoint="imagesearch.cn-hangzhou.aliyuncs.com"
        $config->endpoint = "imagesearch.[regionId].aliyuncs.com";
    
        // 以下为内网(VPC)访问方式
        // 说明:内网(VPC)访问:仅限同区域ECS或资源的访问,例如您购买的图像搜索实例是华东2(上海),那么您的ECS或资源也必须在华东2(上海)才能通过内网VPC地址访问图搜服务,否则会调用不通,如果遇到调用不通,请先检查您的ECS或资源与图像搜索是否在同一个区域。
        // $config->endpointType = "internal";  // 如果是内网访问图像搜索服务,则endpointType为必填项,值统一为"internal"
        // $config->endpoint = "imagesearch-vpc.[regionId].aliyuncs.com"; // 为内网访问(VPC)地址,请您更换为您购买实例的区域,例如您购买实例的区域为杭州,则endpoint="imagesearch-vpc.cn-hangzhou.aliyuncs.com"
    
        $client = new ImageSearch($config);
        $request = new IncreaseListRequest();
        // 必填,图像搜索实例名称。注意是实例名称不是实例ID。购买后通过上云层管控台实例信息一栏查看:https://imagesearch.console.aliyun.com/overview
        $request->instanceName = "xxxxxx";
        // 选填,任务id。
        $request->id = 567;
        // 选填,查询oss 的 BucketName。
        $request->bucketName = "xxxx";
        // 选填,查询oss 的 path 路径。
        $request->path = "/public/xxx";
        // 选填,返回结果起始位置,默认1。
        $request->pageNumber = 1;
        // 选填,返回结果数量,默认20。
        $request->pageSize = 1;
          
        try {
            $response = $client->increaseList($request);
            var_dump($response->body->toMap());
        } catch (TeaUnableRetryError $e) {
            var_dump($e->getLastException(), $e->getLastRequest());
          } catch (Exception $e) {
        }
    }

  • 结果示例

    array(2) {
      ["Data"]=>
      array(4) {
        ["Increments"]=>
        array(1) {
          ["Instance"]=>
          array(1) {
            [0]=>
            array(9) {
              ["BucketName"]=>
              string(21) "xxxxx"
              ["Code"]=>
              string(1) "0"
              ["ErrorUrl"]=>
              string(226) "https://xx/xx"
              ["Id"]=>
              int(1464)
              ["Msg"]=>
              string(7) "success"
              ["Path"]=>
              string(23) "/public/xxx"
              ["Status"]=>
              string(6) "NORMAL"
              ["UtcCreate"]=>
              int(1639107872000)
              ["UtcModified"]=>
              int(1639125540000)
            }
          }
        }
        ["PageNumber"]=>
        int(1)
        ["PageSize"]=>
        int(1)
        ["TotalCount"]=>
        int(1)
      }
      ["RequestId"]=>
      string(36) "603C696F-EC04-101F-8767-29A63382237A"
    }