图像搜索可以通过批量操作功能批量导入阿里云OSS中的图片,或批量删除已经入库的图片,适用于较大规模的离线图片数据操作,稳定性高、速度快、操作方便。本文为您介绍如何批量新增和删除图片。

批量操作流程

  1. 开通OSS服务
  2. 将图片导入到OSS中
  3. 新建increment.meta文件
  4. 图像搜索服务授权
  5. 新建批量任务

开通OSS服务

如果您尚未开通OSS服务,请参见开通OSS服务进行开通。开通服务后,您还需要创建存储空间Bucket,具体请参见创建存储空间
说明
  • 开通的OSS为独立计费,具体计费方式请参见计费概述
  • 请确保开通的OSS服务与已购买的图像搜索服务在同一地域,否则将无法使用批量操作功能。

将图片导入到OSS中

导入图片,具体操作请参见上传文件
说明 图片存放路径可以自定义,只需要在创建批量任务时设置图片路径即可。

新建increment.meta文件

在OSS服务中存放图片的路径下,新建increment.meta文件,该文件用来存储批量任务相关内容。
说明 increment.meta文件中涉及的图片必须和increment.meta文件在同一路径下,否则批量操作会失败。
文件参考示例如下:
{"OperationType": "ADD","ProductId": "1000","PicName": "girl_cloth1.jpg","CategoryId": 0,"IntAttr": 0,"StrAttr": "value1","CustomContent": "k1:v1,k2:v2,k3:v3","Region": "20,40,60,80"}
{"OperationType": "ADD","ProductId": "1000","PicName": "girl_cloth2.jpg","CategoryId": 0,"IntAttr": 0,"StrAttr": "value2","CustomContent": "k1:v1,k2:v2,k3:v3","Region": "20,40,60,80"}
{"OperationType": "ADD","ProductId": "1001","PicName": "girl_cloth3.jpg","CategoryId": 1,"CustomContent": "k1:v1,k2:v2,k3:v3"}
{"OperationType": "ADD","ProductId": "1002","PicName": "girl_cloth4.jpg","CategoryId": 0,"CustomContent": "k1:v1,k2:v2,k3:v3","Crop": false}
{"OperationType": "ADD","ProductId": "1003","PicName": "girl_cloth7.jpg","CustomContent": "https://www.aliyun.com/imagesearch/girl_cloth7.jpg"}
{"OperationType": "ADD","ProductId": "1003","PicName": "girl_cloth6.jpg","CustomContent": "k1:v1,k2:v2,k3:v3"}
{"OperationType": "DELETE","ProductId": "1004","PicName": "fengyi.jpg"}
{"OperationType": "DELETE","ProductId": "1005"}
每个图片由JSON格式表示,具体字段含义如下表所示:
参数 类型 是否必选 说明
OperationType String 操作类型。
  • ADD:新增图片。
  • DELETE:删除图片。
ProductId String 图片唯一标识符。
PicName String 图片名称。OSS的Bucket中图片名称。
说明 每行最多只允许填写1个图片名称。若同一个ProductId,对应多个PicName则需要填写多行。
CategoryId Integer 类目参考
  • 对于商品搜索,如果设置类目,则以设置的为准,并且设置的类目必须在类目参考的范围之内,否则会入库失败;如果不设置类目,将由系统进行类目预测,预测的类目结果可在Response中获取。
  • 对于通用搜索,不论是否设置类目,系统会将类目设置为88888888。
CustomContent String 用户自定义内容。最多支持4096个字符。
IntAttr Integer 整数类型属性。用于查询时设置过滤。
StrAttr String 字符串类型属性。最多支持128字符。用于查询时设置过滤。
Crop Boolean 是否进行主体识别。默认为ture。
  • true:系统自动进行主体识别,以识别的主体进行搜索。
  • false:不进行主体识别,以整张图进行搜索。
Region String 图片的主体区域。格式为x1,x2,y1,y2,其中x1和y1是左上角的点,x2和y2是右下角的点。
说明

若设置了该参数,则Crop参数不生效,以该设置为准。

图像搜索服务授权

图像搜索服务通过OSS来实现数据批量操作,首次使用需完成账号一键授权。如已完成授权,可跳过此步骤。

  1. 登录图像搜索控制台
  2. 选择目标服务类型和目标实例。
  3. 单击批量操作页签。
    批量操作
  4. 单击新建批量任务,在对话框单击确认一键授权
    一键授权
  5. 云资源访问授权页面单击同意授权
    同意授权

新建批量任务

  1. 登录图像搜索控制台
  2. 选择目标服务类型和目标实例。
  3. 单击批量操作页签。
    批量操作
  4. 单击新建批量任务
    新建批量任务
  5. 设置批量任务参数。
    • 所属区域

      实例所在区域。

    • Bucket名称
      OSS上创建的相应的Bucket名称。
      注意 请确保开通的OSS服务与已购买的图像搜索服务在同一个地域。
    • 数据路径
      需要上传的图片和increment.meta文件的存储路径。批量操作-数据路径
    • meta文件

      需要处理图片的列表文件,支持检测是否存在,文件名为increment.meta。

    • 完成后信息回调
      输入回调地址,仅支持 http或者https开头。
      {
        "finishTime": "2021-05-19 17:50:00",
        "instanceId": "imagesearch-cn-xxxx",
        "instanceName": "instanceName",
        "message": "success",
        "processResultUrl": "https://image-search-task-info.oss-cn-shanghai.aliyuncs.com/yyyyyyyyyy",
        "status": "NORMAL",
        "taskId": 111
      }
      字段名 描述
      finishTime 完成时间,精确到秒。
      instanceName 图像搜索实例名称。
      instanceId 图像搜索实例ID。
      status 任务执行结果,NORMAL为正常,FAIL为执行失败。
      taskId 任务ID。
      message 信息描述;success为成功。
      processResultUrl 错误结果下载。

后续步骤

在实例详情页,查看所有批量任务的信息。批量任务状态为成功后,用户可以查看相应的提示信息:实例详情
  • 可以根据Bucket或者数据路径进行实例查询。
  • 如果提示信息为部分照片处理失败,已为您分离,点击下载,则表明该增量任务中有部分图片处理失败,用户可以下载相应文件查看处理失败的原因。