全部产品

图片服务

更新时间:2020-10-13 11:39

1. OSS流程示意

  1. 获取ossTicket(/solution/community/oss/ticket/get)

  2. 使用ossTicket连接OSS服务并上传,返回ossKey;

  3. 使用ossKey保存文件,获取uploadId(/solution/community/oss/file/save)

  4. 在需要上传文件的API中,使用uploadId作为参数,具体见接口说明。部分仍使用ossKey的接口,将来可能会升级为使用uploadId.

OSS流程示意

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