云服务器内容精选

  • 计费项 图像搜索 服务的计费项包含索引存储数量和搜索查询次数。 表1 计费项说明 计费项 计费项说明 索引存储V2 通过添加数据V2、删除数据V2接口对实例中的索引存储数量进行管理。 搜索查询V2 搜索查询API的调用次数。 由于存在资源占用,单个服务实例的存储数量存在计费下限,不同存储规格的服务实例存储数量下限分别为各自存储规格的10%,且最低存储数量下限为10万,实际存储数量小于数量下限时按照数量下限计费,大于数量下限时按实际数量计费。 实例支持多个搜索类型时,索引存储数量超过存储下限时,按索引存储数量 * 搜索类型数计费。例如:当选择3种搜索类型"IMAGE"、"KEYWORD"、"TEXT"时,存储计费为1种搜索类型的索引存储数量费用*3。 搜索查询V2,添加数据V2默认QPS为5。 只有调用成功才会计算搜索次数,其中返回的2xx状态码表示调用成功,调用失败不计费。 如您后续不再使用图像搜索服务,需要将索引存储实例库删除,避免产生额外的存储费用,可登陆控制台在实例管理中删除。
  • 到期与欠费 包年包月资源包到期后,自动转为按需计费。 按需计费是按照每小时扣费,当账户的余额不足时,无法对上一个小时的费用进行扣费,就会导致欠费。 如果账号欠费,会根据“客户等级”来定义保留期时长,保留期内资源处理和费用详见宽限期与保留期。 您续费后可继续正常使用。保留期满仍未续订或充值,数据将被删除且无法恢复。 在保留期进行的续费,是以原到期时间作为生效时间,您应当支付从进入保留期开始到续费时的服务费用。 您账号欠费后,会导致部分操作受限,建议您尽快续费。具体受限操作如下: 开通服务 购买套餐包 按需计费模式的API无法调用
  • API概览 图像搜索服务所提供的API为自研API。通过使用服务的自研API,您可以完整的使用如下所有功能。 API说明章节中请求示例均采用Token方式请求消息头,在实际使用过程中可根据情况选择认证方式。 请求样例中的Token值以实际申请服务时所获取的Token值为准。 endpoint、projectId以实际申请的服务所在区域为准。 API 说明 添加数据 V2 添加数据到指定服务实例中,只有已添加到服务实例中的数据才能被搜索到。 搜索查询 V2 从指定服务实例中进行搜索。 检查数据 V2 检查指定服务实例中的对应数据是否存在,如存在则返回其主要信息。 更新数据 V2 更新指定服务实例中的对应数据。 删除数据 V2 删除指定服务实例中的对应数据。
  • 请求示例 搜索商品图像,使用图像BASE64编码 POST https://{endpoint}/v2/{project_id}/mms/{service_name}/search { "search_type" : "CATEGORY", "image_base64" : "/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAA...", "custom_tags" : { "brand" : [ "HUAWEI" ] }, "custom_num_tags" : { "year" : { "from" : 2020, "to" : 2022 } } }
  • 响应示例 状态码: 200 成功响应示例 { "result" : "success", "data" : { "items" : [ { "id" : "electronics_01", "score" : 1, "source" : { "desc" : "天地纵横自然", "custom_tags" : { "brand" : "HUAWEI" }, "custom_num_tags" : { "year" : 2022 } } } ], "search_info" : { "total_num" : 10, "return_num" : 1, "search_time" : 512 }, "image_info" : { "box" : "26,223,771,704", "category" : 11, "category_name" : "electronics", "objects" : [ { "box" : "26,223,771,704", "category" : 11, "category_name" : "electronics" }, { "box" : "55,66,420,315", "category" : 0, "category_name" : "others" } ] } } } 状态码: 400 失败响应示例 { "error_code" : "MMS.0003", "error_msg" : "Invalid parameter: custom_tags" }
  • 请求示例 添加商品图像数据,使用图像BASE64编码 POST https://{endpoint}/v2/{project_id}/mms/{service_name}/data/add { "item_id" : "electronics_01", "image_base64" : "/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAA...", "desc" : "天地纵横自然", "custom_tags" : { "brand" : "HUAWEI" }, "custom_num_tags" : { "year" : 2022 } }
  • 响应示例 状态码: 200 响应成功示例 { "result" : "success", "data" : { "image_info" : { "objects" : [ { "box" : "26,223,771,704", "category" : 11, "category_name" : "electronics" } ] } } } 状态码: 400 响应失败示例 { "error_code" : "MMS.0003", "error_msg" : "Invalid parameter: item_id" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 result String 添加数据完成返回success。 data AddDataRestInfo object 添加数据的相关信息。 表5 AddDataRestInfo 参数 参数类型 描述 image_info image_info object 添加图像数据的相关信息,不同服务类型返回信息不同,具体可参见服务类型说明。 表6 image_info 参数 参数类型 描述 objects Array of objects objects 添加的主体列表。 表7 objects 参数 参数类型 描述 box String 主体目标框。 category Integer 主体类目序号。 category_name String 主体类目名称。 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 result String 删除数据完成返回success。 data DeleteRestInfo object 删除数据的相关信息,仅在条件删除时存在该字段。 表5 DeleteRestInfo 参数 参数类型 描述 items Array of items objects 删除数据列表。 delete_info DeleteInfo object 删除结果的相关信息。 表6 items 参数 参数类型 描述 id String 数据唯一ID。 表7 DeleteInfo 参数 参数类型 描述 total_num Integer 符合条件的结果总数。 delete_num Integer 本次删除的结果总数,目前一次请求最多删除100条结果。 状态码: 400 表8 响应Body参数 参数 参数类型 描述 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 请求示例 更新数据 POST https://{endpoint}/v2/{project_id}/mms/{service_name}/data/update { "item_id" : "electronics_01", "desc" : "摄与山海之间,水天相接", "custom_tags" : { "brand" : "HUABAN" }, "custom_num_tags" : { "year" : 2023 } }
  • 响应示例 状态码: 200 成功响应示例 { "result" : "success", "data" : { "existed" : true, "item_info" : { "desc" : "天地纵横自然", "custom_tags" : { "brand" : "HUAWEI" }, "custom_num_tags" : { "year" : 2022 } } } } 状态码: 400 失败响应示例 { "error_code" : "MMS.0003", "error_msg" : "Invalid parameter: item_id" }
  • 更新数据示例 本章节对更新数据AK/SK方式使用SDK进行示例说明。 更新数据示例代码只需将AK/SK信息替换为实际AK/SK,代码中可以使用初始化UpdateParam中的CustomNumTags、CustomTags、Desc、ItemId配置服务输入参数,配置完成后运行即可。 更新数据调用示例代码如下: package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" imagesearch "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/imagesearch/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/imagesearch/v2/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/region" ) func main() { // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 ak := os.Getenv("HUAWEICLOUD_SDK_AK") sk := os.Getenv("HUAWEICLOUD_SDK_SK") iamEndpoint := "https://iam.cn-north-4.myhuaweicloud.com" endpoint := "https://mms.cn-north-4.myhuaweicloud.com" projectId := "project_id" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithIamEndpointOverride(iamEndpoint). WithProjectId(projectId). Build() // 初始化客户端 client := imagesearch.NewImageSearchClient( imagesearch.ImageSearchClientBuilder(). // 设置region, 示例中为北京四 WithRegion(region.NewRegion("cn-north-4", endpoint)). WithCredential(auth). Build()) request := &model.RunUpdateDataRequest{} request.ServiceName = "service_name" var listCustomNumTagsbody = map[string]float64{ "key": float64(1), } var listCustomTagsbody = map[string]string{ "key": "value", } descUpdateParam:= "description" request.Body = &model.UpdateParam{ CustomNumTags: listCustomNumTagsbody, CustomTags: listCustomTagsbody, Desc: &descUpdateParam, ItemId: "item_id", } response, err := client.RunUpdateData(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } 执行示例代码文件,控制台输出更新数据结果即表示程序执行成功。 RunUpdateDataResponse { "result": "success" } 父主题: 使用SDK(GO)
  • 响应示例 状态码: 200 成功响应示例 { "instanceName" : "test-instance", "level" : 30000000, "expiredDate" : 1530848365207, "domain" : "model description", "desc" : "register service for instance test.", "registerDate" : 1529377136279, "tags" : [ "tag1", "tag2" ], "status" : "NORMAL" } 状态码: 400 失败响应示例 { "error_code" : "IS.0004", "error_msg" : "The authentication token is abnormal." }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 domain String 模型展示名或领 域名 称。 desc String 描述。 registerDate Long 注册时间。 expiredDate Long 过期时间,-1表示永不过期。 level Integer 规格,即实例的图片数量规格,默认为30000000(单位:张)。 tags Array of strings 图片自定义标签。 status String 实例的状态,有以下状态信息: NORMAL:正常。 ARREARAGE:欠费。 CREATION:创建中。 CREATION_FAILD:创建失败。 DELETING:删除中。 DELETING_FAILED:删除失败。 ABNORMAL:异常。 instanceName String 实例名称。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 file 否 String 图片文件Base64编码字符串,仅支持JPEG/JPG/PNG/BMP格式,图片最小边不小于100px,最大边不超过2048px。 path 是 String 图片的URL路径,作为图片库中索引图片的ID,是必选参数。 说明: 当file字段不为空时,图片从file获取,path作为图片索引ID使用;当file字段不存在或者为空时,图片需要通过下载获取,此时path作为下载图片的地址(当前仅支持从华为云图像搜索服务所在区域的OBS下载图片),同时,path也作为图片索引ID。 tags 否 Object 图片自定义标签。格式为key:value对,所有图片的key总数最多不超过10个,但是每个key对应的value不限制个数,例如:key为动物,对应的value可以是猫、狗、鸟等多个。 标签名(key)添加方式: 登录管理控制台,单击“创建实例”自定义标签名。 在“实例管理”页签,单击实例名称,进入“基础信息”页添加自定义标签。