1. OSS流程示意
获取ossTicket(/solution/community/oss/ticket/get)
使用ossTicket连接OSS服务并上传,返回ossKey;
使用ossKey保存文件,获取uploadId(/solution/community/oss/file/save)
在需要上传文件的API中,使用uploadId作为参数,具体见接口说明。部分仍使用ossKey的接口,将来可能会升级为使用uploadId.
2. 获取OSS上传地址
Path路径 | /solution/community/oss/ticket/get |
请求方式 | post |
接口版本 | 1.0.2 |
请求参数
字段名 | 类型 | 必填 | 备注 |
type | String | 是 | ticket类型枚举;图片为picture,最大为2MB. |
返回结果
字段名 | 类型 | 备注 |
data | JSON | ticket信息 |
Ticket信息
字段名 | 类型 | 备注 |
accessId | String | oss访问ID |
policy | String | 编码 |
signature | String | 签名 |
dir | String | OSS路径 |
host | String | OSS服务host |
expire | Long | 过期时间 |
api接口1.0.1以前的版本,ossKey可以直接在业务接口中使用。此版本接口即将下线,目前仅兼容已对接过的ISV;
api接口1.0.2以后的版本,需要在完成文件上传后,调用 “保存上传OSS文件”接口获取uploadId(上传文件ID)
上传示例:
https://help.aliyun.com/document_detail/31988.html?pos=4 注意,示例代码中的对应字段,请使用上述返回值替代。一般用于从前端上传。
后端上传示例
public static void upload(File file,String host, String dir, String policy, String accessKeyId, String signature)throws ClientProtocolException, IOException{
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
CloseableHttpResponse httpResponse = null;
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(200000).setSocketTimeout(200000000).build();
HttpPost httpPost = newHttpPost(host);
httpPost.setConfig(requestConfig);
MultipartEntityBuilder multipartEntityBuilder= MultipartEntityBuilder.create();
multipartEntityBuilder.setCharset(Charset.forName("UTF-8"));
multipartEntityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
//处理文件名乱码
ContentType contentType = ContentType.create(HTTP.PLAIN_TEXT_TYPE, HTTP.UTF_8);
multipartEntityBuilder.addTextBody("key",dir+"/" + file.getName(),contentType);
multipartEntityBuilder.addTextBody("policy",policy);
multipartEntityBuilder.addTextBody("OSSAccessKeyId",accessKeyId);
multipartEntityBuilder.addTextBody("success_action_status","200");
multipartEntityBuilder.addTextBody("callback","");
multipartEntityBuilder.addTextBody("signature",signature);
multipartEntityBuilder.addBinaryBody("file",file);
HttpEntity httpEntity = multipartEntityBuilder.build();
httpPost.setEntity(httpEntity);
httpResponse = httpClient.execute(httpPost);
HttpEntity responseEntity = httpResponse.getEntity();
int statusCode= httpResponse.getStatusLine().getStatusCode();
if(statusCode == 200){
BufferedReader reader = new BufferedReader(new InputStreamReader(responseEntity.getContent()));
StringBuffer buffer = new StringBuffer();
String str = "";
while(!StringUtils.isEmpty(str = reader.readLine())) {
buffer.append(str);
}
System.out.println(buffer.toString());
}
httpClient.close();
if(httpResponse!=null){
httpResponse.close();
}
}
3. 保存上传OSS文件
在“获取OSS上传地址”后,完成OSS文件上传,需要一步保存操作,把上传ossKey换成uploadId。
Path路径 | /solution/community/oss/file/save |
请求方式 | post |
接口版本 | 1.0.0 |
请求参数
字段名 | 类型 | 必填 | 备注 |
communityId | Long | 否 | 小区ID |
tmpOssKey | String | 是 | 临时区的OSSkey |
bizCode | String | 是 | 业务标识,默认使用DEFAULT,其它取值: l 小区物业认证文件:COMMUNITY_FILE l 人脸图片:HOUSEHOLD_FACE |
urlTimeout | Integer | 否 | 不指定时默认5分钟有效(300秒) |
返回结果
字段名 | 类型 | 备注 |
uploadId | String | 上传ID |
url | String | 访问URL,有效期由urlTimeout指定 |
urlTimeout | Integer | 失效时间(秒) |
注意:这个接口需要和”获取OSS上传地址配合使用。先获取临时区ossTicket,完成文件上传后,调用此接口获取uploadId(上传文件ID)。
4. 检测人脸图片质量
Path路径 | /solution/community/faceimage/check |
请求方式 | post |
接口版本 | 1.0.1 |
请求参数
参数 | 类型 | 必填 | 描述 |
width | Integer | 是 | 人脸图片的宽度(像素) |
height | Integer | 是 | 人脸图片的高度(像素) |
url | String | 是 | 人脸图片的oss地址 |
返回结果
检查点 | 定义 |
文件格式 | jpg |
分辨率 | 800*800及以下 |
文件大小(byte) | 10K~1M |
人脸数量 | 1 |
姿态 | 正脸 |
人脸占整体图面积 | 大于1/4 |
在文档使用中是否遇到以下问题
更多建议
匿名提交