图像搜索可以通过批量操作功能批量导入阿里云OSS中的图片,或批量删除已经入库的图片,适用于较大规模的离线图片数据操作,稳定性高、速度快、操作方便。本文为您介绍如何批量新增和删除图片。
如需了解更多产品详情和获取技术支持,请单击在线咨询或通过钉钉群(35035130)联系我们。
批量操作流程
开通OSS服务
将图片导入到OSS中
导入图片,具体操作请参见上传文件。
图片存放路径可以自定义,只需要在创建批量任务时设置图片路径即可。
新建increment.meta文件
在OSS服务中存放图片的路径下,新建increment.meta文件,该文件用来存储批量操作任务相关内容。
increment.meta文件中涉及的图片必须和increment.meta文件在同一Bucket下,否则批量操作会失败。
increment.meta文件名称是固定的,图像搜索将根据此文件名称读取批量操作相关内容,不要擅自修改文件名称,否则会操作失败。
图像搜索支持同一Bucket,不同路径(path)图片的批量操作,例如:Bucket为imagesearch,increment.meta文件在此Bucket的根目录下,path为girlCloth,图片在此path目录下,图片名称为girl_cloth8.jpg,则meta文件中PicName应写为
“PicName":"girlCloth/girl_cloth8.jpg",注意:必须写成"girlCloth/girl_cloth8.jpg",在girlCloth前面和girl_cloth8.jpg后面都不能加正斜线(/)。如果有多级目录按照此逻辑依次类推。在OSS中的图片名称后缀必须填写,例如图片名称为girl_cloth10.jpg,不能写为"PicName":"girl_cloth10",必须写为"PicName":"girl_cloth10.jpg",否则会处理失败。
increment.meta文件中,一行代表处理一张图片,处理另一张图片必须换行,不得将所有图片处理写到一行中,否则会处理失败。
JSON格式文件参考示例如下:
{"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": "ADD","ProductId": "1006","PicName": "girlCloth/girl_cloth10.jpg","CustomContent": "k1:v1,k2:v2,k3:v3"}
{"OperationType": "DELETE","ProductId": "1004","PicName": "fengyi.jpg"}
{"OperationType": "DELETE","ProductId": "1005"}CSV格式文件参考示例如下:
具体字段含义如下表所示:
参数 | 类型 | 是否必选 | 说明 |
OperationType | String | 是 | 操作类型。
|
ProductId | String | 是 | 图片唯一标识符,最多支持256个字符。 |
PicName | String | 是 | 图片名称。OSS的Bucket中图片名称。最多支持256个字符。 重要
|
CategoryId | Integer | 否 | 更多说明,请参见类目参考。
|
CustomContent | String | 是 | 用户自定义内容。最多支持4096个字符。 说明
图片的CustomContent会在搜索结果中自动关联出来。通过CustomContent字段,您可以填写图片的URL地址,图片额外附加信息等,以便与您的业务关联。 |
IntAttr | Integer | 否 | 整数类型属性。用于查询时设置过滤。 说明
整型类型属性与图片查询时的过滤条件组合使用,以起到过滤查询的功能。请参考条件过滤。 |
IntAttr2 | |||
IntAttr3 | |||
IntAttr4 | |||
StrAttr | String | 否 | 字符串类型属性。最多支持128字符。用于查询时设置过滤。 说明
|
StrAttr2 | |||
StrAttr3 | |||
StrAttr4 | |||
Crop | Boolean | 否 | 是否进行主体识别。默认为true。
说明 服务类型为布料图片搜索、版权图片搜索时,此参数不生效,默认以整张图进行搜索。 |
Region | String | 否 | 图片的主体区域。格式为 说明
|
图像搜索服务授权
图像搜索服务通过OSS来实现数据批量操作,首次使用需完成账号一键授权。如已完成授权,可跳过此步骤。
登录图像搜索管理控制台。
选择目标服务类型和目标实例。
单击批量操作页签。
单击后,进入批量操作页面,页面左上方有新建批量任务按钮,下方为任务列表,包含所属区域、Bucket 名称、数据路径、任务状态、提示信息、最新修改时间、批量处理结果和操作列。
单击新建批量任务,在对话框单击确认一键授权。
在云资源访问授权页面单击确认授权。
页面显示授权角色为
AliyunImageSearchAccessingOSSRole,权限策略为AliyunImageSearchAccessingOSSRolePolicy(系统策略)。
新建批量任务
登录图像搜索管理控制台。
选择目标服务类型和目标实例。
单击批量操作页签。
进入批量操作页面,左上方显示新建批量任务按钮,下方为批量任务列表,包含Bucket名称、数据路径、任务状态、批量处理结果等列。
单击新建批量任务。
在 新建批量任务 页面,配置以下参数:Bucket 名称(必填,从下拉框选择)、数据路径(必填,需以
/开头)、meta文件(必填,默认为increment.meta)、完成后信息回调(选填,输入 HTTP(S) 通知回调地址),然后单击 确认。设置批量任务参数。
所属区域
实例所在区域。
Bucket名称
OSS上创建的相应的Bucket名称。
重要请确保开通的OSS服务以及创建的Bucket与已购买的图像搜索服务在同一个地域。
数据路径
需要上传的图片和increment.meta文件的存储路径。
在OSS管理控制台的文件管理页面中,确认Bucket名称为imagesearch1,区域为华东2(上海),图片和increment.meta文件存放在imagesearch/文件夹下。
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
错误结果下载。
取消批量任务
如需取消“处理中”的批量任务,请单击取消。在批量操作页签的任务列表中,找到目标批量任务,在其操作列单击取消。
阅读弹窗内容,单击确定,开始终止批量任务。在弹出的警告对话框中单击确定确认取消,需等待约2分钟。
批量任务取消后,已执行部分会保留,任务状态变为终止。单击结果下载,查看具体执行情况。
后续步骤
在实例详情页,查看所有批量任务的信息,处理中的批量任务会展示任务进度。批量任务状态为成功后,用户可以查看相应的提示信息:在批量操作页签中,可查看批量任务列表。任务状态为处理中时会显示任务进度,可单击取消终止该任务;任务完成后,状态显示为成功或终止,可单击重新提交重新执行任务。
可以根据Bucket名称或者数据路径进行实例查询。
如果提示信息为部分照片处理失败,已为您分离,单击结果下载,则表明该增量任务中有部分图片处理失败,用户可以下载相应文件查看处理失败的原因。