时序图如上
上传回调过程是在后台封装好代码,将callback作为参数在获取签名的时候返回给前端,前端再去直接调用host进行文件直传,此时阿里云会根据是否有回调地址进行调用此接口地址;针对此回调地址可以进行具体业务处理;
大家可以先去看官方文档,基本数据在文档中都有;
踩坑指南:
- 回调地址未生效
- 上传图片无法预览只能下载
- 回调后处理时无法获取参数
- 如何处理可用或者是防盗链接地址
回调地址需要放开鉴权,具体看你服务端采用哪种鉴权方式;
接下来从后台提供两个接口,一个获取签名接口需要用户登录后使用,一个回调接口;
/**
* 获取签名接口
* @return
*/
public OssPolicyResultVo getPolicy() {
OssPolicyResultVo result = new OssPolicyResultVo();
// 存储目录
String dir = ossConfigVo.getImageFilePathPrefix();
// 签名有效期
long expireEndTime = System.currentTimeMillis() + ossConfigVo.getFileExpireTime() * 1000;
Date expiration = new Date(expireEndTime);
// 回调参数
OssCallbackParam callback = new OssCallbackParam();
callback.setCallbackUrl(ossConfigVo.getAliyunOSSCallBack());
callback.setCallbackBody("filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}");
callback.setCallbackBodyType("application/x-www-fo