云服务器内容精选

  • 响应消息 图片文件为BASE64字符串响应参数请参见表2。 表2 响应参数说明 名称 类型 说明 result String 调用成功时表示图片文件BASE64字符串。 调用失败时无此字段。 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。 图片为文件类型响应参数请参见表3。 表3 响应参数说明 名称 类型 说明 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 请求消息 请求参数请参见表1。 表1 请求参数说明 名称 是否必选 类型 说明 image 与file二选一 String 图片文件BASE64编码字符串。要求base64编码后大小不超过10MB,支持JPEG、PNG、BMP、WEBP格式。 file 与image二选一 File 图片文件。 gamma 否 Float gamma矫正值,默认为1.5,取值范围:[0.1,10]。 natural_look 否 Boolean 是否保持自然观感,默认是true。如果选择false,则图像只追求去雾效果,图像视觉效果可能不自然。
  • 示例 请求示例(方式一:使用图片的BASE64编码) POST https://image.cn-north-1.myhuaweicloud.com/v1.0/vision/defog Request Header: Content-Type:application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "image":"/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzADIwMTc6MTA6MjAgMTA6NDU6MzYAAAAAA6ABAAMAAAAB//8AAKACAAQAAAABAAALIKADAAQAAAABAAAGQAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAAAgEABAAAAAEAAAEuAgIABAAAAAEAABAj...", "gamma":1.5, "natural_look":true } 请求示例(方式二:使用图片文件) POST https://image.cn-north-1.myhuaweicloud.com/v1.0/vision/defog Request Header: X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body(form-data): file:File(图片文件) gamma:1.5 natural_look:true 方式一:图片文件为BASE64字符串。 成功响应示例 { "result":"/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzADIwMTc6MTA6MjAgMTA6NDU6MzYAAAAAA6ABAAMAAAAB//8AAKACAAQAAAABAAALIKADAAQAAAABAAAGQAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAAAgEABAAAAAEAAAEuAgIABAAAAAEAABAj..." } 失败响应示例 { "error_code": "AIS.0105", "error_msg": "Recognize Failed" } 方式二:图片为文件类型。 响应样例 成功时返回图片文件字节流。 失败响应样例 { "error_code": "AIS.0105", "error_msg": "Recognize Failed" }
  • 请求消息 表1 请求参数说明 名称 是否必选 类型 说明 image false String 与url二选一。 图像数据,base64编码,要求base64编码后大小不超过10MB,最短边至少15px,最长边最大4096px,支持JPEG、PNG、BMP、WEBP格式。 url false String 与image二选一。 图片的URL路径,目前支持: 公网HTTP/HTTPS URL OBS提供的URL,使用OBS数据需要进行授权。包括对服务授权、临时授权、匿名公开授权。详情参见配置OBS服务的访问权限。 说明: 接口响应时间依赖于图片的下载时间,如果图片下载时间过长,会返回接口调用失败。 请保证被检测图片所在的存储服务稳定可靠,推荐使用OBS服务存储图片数据。 lmage不支持跨区域OBS,OBS的区域需要和服务保持一致。 language false String zh:返回标签的语言类型为中文。 en:返回标签的语言类型为英文。 默认值为zh。 limit false Integer 最多返回的标签数,默认值:30。 threshold false Float 置信度的阈值(0~100),输入非该范围内值算法即取默认值。 默认值:0。
  • 响应消息 响应参数请参见表2。 表2 响应参数说明 名称 类型 说明 result JSON 调用成功时为图像标签内容。 调用失败时无此字段。 tags List 标签列表集合。 confidence Float 置信度,取值范围(0~100)。 tag String 标签名称。 type String 标签的类别。有以下三种类别: object:实体标签 scene:场景标签 concept:概念标签 i18n_tag JSON 标签的国际化字段。(i18n只是个国际化标志,无特殊含义)。 zh:中文 en:英文 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 示例 请求示例(图片文件为BASE64字符串) POST https://image.cn-north-1.myhuaweicloud.com/v1.0/vision/dark-enhance Request Header: Content-Type:application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "image":"/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzADIwMTc6MTA6MjAgMTA6NDU6MzYAAAAAA6ABAAMAAAAB//8AAKACAAQAAAABAAALIKADAAQAAAABAAAGQAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAAAgEABAAAAAEAAAEuAgIABAAAAAEAABAj...", "brightness":0.9 } 成功响应示例 { "result":"/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzADIwMTc6MTA6MjAgMTA6NDU6MzYAAAAAA6ABAAMAAAAB//8AAKACAAQAAAABAAALIKADAAQAAAABAAAGQAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAAAgEABAAAAAEAAAEuAgIABAAAAAEAABAj..." } 失败响应示例 { "error_code": "AIS.0105", "error_msg": "Recognize Failed" }
  • 响应消息 图片为BASE64字符串响应参数请参见表2。 表2 响应参数说明 名称 类型 说明 result String 调用成功时表示图片文件BASE64字符串。 调用失败时无此字段。 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。 图片为文件类型响应参数请参见表3。 表3 响应参数说明 名称 类型 说明 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 请求消息 请求参数请参见表1。 表1 请求参数说明 名称 是否必选 类型 说明 image 与file二选一 String 图片文件BASE64编码串。要求base64编码后大小不超过10MB,支持JPEG、PNG、BMP、WEBP格式。 file 与image二选一 File 图片文件。 说明: 不推荐使用该请求参数。 为了保持兼容服务端,对此类接口的支持能力,保留该请求参数,但不再展示该参数对应的请求示例和响应示例。 brightness 否 Float 亮度值,亮度值设置的越高,亮度越大。默认值0.9,取值范围[0,1]。
  • 示例 请求示例 POST https://image.cn-north-1.myhuaweicloud.com/v1.0/bgm/recognition Request Header: Content-Type:application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "url": "https://BucketName.obs.myhuaweicloud.com/ObjectName" } 成功响应示例 { "result": { "audio_name": "my heart will go on" } } 失败响应示例 { "error_code": "AIS.0014", "error_msg": "The JSON format of the input data is incorrect." }
  • 示例 请求示例(方式一:使用图片的BASE64编码) POST https://image.cn-north-1.myhuaweicloud.com/v1.0/vision/super-resolution Request Header: Content-Type:application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "image":"/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzADIwMTc6MTA6MjAgMTA6NDU6MzYAAAAAA6ABAAMAAAAB//8AAKACAAQAAAABAAALIKADAAQAAAABAAAGQAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAAAgEABAAAAAEAAAEuAgIABAAAAAEAABAj...", "scale":3, "model":"ESPCN" } 请求示例(方式二:使用图片文件) POST https://image.cn-north-1.myhuaweicloud.com/v1.0/vision/super-resolution Request Header: X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body(form-data): file:File(图片文件) scale:3 model:ESPCN 方式一:图片为BASE64字符串。 成功响应示例 { "result":"/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodpAAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzADIwMTc6MTA6MjAgMTA6NDU6MzYAAAAAA6ABAAMAAAAB//8AAKACAAQAAAABAAALIKADAAQAAAABAAAGQAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEAAgAAAgEABAAAAAEAAAEuAgIABAAAAAEAABAj..." } 失败响应示例 { "error_code": "AIS.0105", "error_msg": "Recognize Failed" } 方式二:图片文件类型。 成功响应示例 成功时返回图片文件字节流。 失败响应示例 { "error_code": "AIS.0105", "error_msg": "Recognize Failed" }
  • 响应消息 图片为BASE64字符串响应参数请参见表2。 表2 响应参数说明 名称 类型 说明 result String 调用成功时表示图片文件BASE64字符串。 调用失败时无此字段。 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。 图片为文件类型响应参数说明请参见表3。 表3 响应参数说明 名称 类型 说明 error_code String 调用失败时的错误码,具体请参考错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。
  • 请求消息 请求参数请参见表1。 表1 请求参数说明 名称 是否必选 类型 说明 image 与file二选一 String 图片文件BASE64编码字符串。要求base64编码后大小不超过10MB,支持JPEG/PNG/BMP格式。 file 与image二选一 File 图片文件。 scale 否 Integer 放大倍数,默认为3,取值范围:3或4。 model 否 String 图像超分辨率重建采用的算法模式,支持ESPCN和SRCNN,默认ESPCN。 取值为: “ESPCN”:Efficient Sub-Pixel Convolutional Neural Network。 “SRCNN”: Super-Resolution Convolutional Neural Network。
  • 示例代码 下面代码展示了如何对一个请求进行签名,并通过AisAccess发送一个HTTPS请求的过程: 代码分成两个类进行演示: ResponseProcessUtils:工具类,用于处理结果的返回。 ImageTaggingDemo:进行相关参数ak,sk,region的配置,访问 图像标签服务 的示例。 ResponseProcessUtils.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 package com.huawei.ais.demo; import java.io.FileOutputStream; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import org.apache.http.HttpResponse; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.cloud.sdk.util.Base64; import com.huawei.ais.sdk.util.HttpClientUtils; /** * 访问服务返回结果信息验证的工具类 */ public class ResponseProcessUtils { /** * 打印出服务访问完成的HTTP状态码 * * @param response 响应对象 */ public static void processResponseStatus(HttpResponse response) { System.out.println(response.getStatusLine().getStatusCode()); } /** * 打印出服务访问完成后,转化为文本的字符流,主要用于JSON数据的展示 * * @param response 响应对象 * @throws UnsupportedOperationException * @throws IOException */ public static void processResponse(HttpResponse response) throws UnsupportedOperationException, IOException { System.out.println(HttpClientUtils.convertStreamToString(response.getEntity().getContent())); } /** * 处理返回Base64编码的图像文件的生成 * * @param response * @throws UnsupportedOperationException * @throws IOException */ public static void processResponseWithImage(HttpResponse response, String fileName) throws UnsupportedOperationException, IOException { String result = HttpClientUtils.convertStreamToString(response.getEntity().getContent()); JSONObject resp = JSON.parseObject(result); String imageString = (String)resp.get("result"); byte[] fileBytes = Base64.decode(imageString); writeBytesToFile(fileName, fileBytes); } /** * 将字节数组写入到文件, 用于支持二进制文件(如图片)的生成 * @param fileName 文件名 * @param data 数据 * @throws IOException */ public static void writeBytesToFile(String fileName, byte[] data) throws IOException{ FileChannel fc = null; try { ByteBuffer bb = ByteBuffer.wrap(data); fc = new FileOutputStream(fileName).getChannel(); fc.write(bb); } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); } finally { fc.close(); } } } ImageTaggingDemo.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 package com.huawei.ais.demo.image; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; import com.huawei.ais.demo.ResponseProcessUtils; import com.huawei.ais.demo.ServiceAccessBuilder; import com.huawei.ais.sdk.AisAccess; import com.huawei.ais.sdk.util.HttpClientUtils; import org.apache.commons.codec.binary.Base64; import org.apache.commons.io.FileUtils; import org.apache.http.HttpResponse; import org.apache.http.entity.StringEntity; import java.io.File; import java.io.IOException; /** * 图像标签服务的使用示例类 */ public class ImageTaggingDemo { // // 图像标签服务的使用示例函数 // private static void imageTaggingDemo() throws IOException { // 1. 图像标签服务的的基本信息,生成对应的一个客户端连接对象 AisAccess service = ServiceAccessBuilder.builder() .ak("######") // your ak .sk("######") // your sk .region("cn-north-1") // 图像识别服务华北-北京一的配置 .connectionTimeout(5000) // 连接目标url超时限制 .connectionRequestTimeout(1000) // 连接池获取可用连接超时限制 .socketTimeout(20000) // 获取服务器响应数据超时限制 .build(); try { // // 2.构建访问图像标签服务需要的参数 // String uri = "/v1.0/image/tagging"; byte[] fileData = FileUtils.readFileToByteArray(new File("data/image-tagging-demo-1.jpg")); String fileBase64Str = Base64.encodeBase64String(fileData); JSONObject json = new JSONObject(); json.put("image", fileBase64Str); json.put("threshold", 60); StringEntity stringEntity = new StringEntity(json.toJSONString(), "utf-8"); // 3.传入图像标签服务对应的uri参数, 传入图像标签服务需要的参数, // 该参数主要通过JSON对象的方式传入, 使用POST方法调用服务 HttpResponse response = service.post(uri, stringEntity); // 4.验证服务调用返回的状态是否成功,如果为200, 为成功, 否则失败。 ResponseProcessUtils.processResponseStatus(response); // 5.处理服务返回的字符流,输出识别结果。 JSONObject jsonObject = JSON.parseObject(HttpClientUtils.convertStreamToString(response.getEntity().getContent())); System.out.println(JSON.toJSONString(JSON.parse(jsonObject.toString()), SerializerFeature.PrettyFormat)); } catch (Exception e) { e.printStackTrace(); } finally { // 6.使用完毕,关闭服务的客户端连接 service.close(); } } // // 主入口函数 // public static void main(String[] args) throws IOException { // 测试入口函数 imageTaggingDemo(); } }
  • AK/SK认证 AK/SK签名认证、Token认证方式仅支持消息体大小12M以内的请求使用。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。 AK/SK获取方式请参考获取AK/SK。
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 username、domainname 的获取请参考获取账号名和账号ID。password为用户密码。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", // IAM 用户名 "password": "********", //密码 "domain": { "name": "domainname" //IAM用户所属账号名 } } } }, "scope": { "project": { "name": "xxxxxxxx" } } } } 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 GET https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333 。