引入依赖

Hntool对所有第三方都是可选依赖,因此在使用阿里云存储时需要自行引入第三方依赖。

  1. <!--阿里云上传相关依赖-->
  2. <dependency>
  3. <groupId>com.aliyun.oss</groupId>
  4. <artifactId>aliyun-sdk-oss</artifactId>
  5. <version>3.8.0</version>
  6. </dependency>

阿里云文档地址

api
java sdk

参数

在配置表中,配置以下参数:

名称 配置名 配置值
【阿里云存储】endpoint upload.ali.endpoint http://xxxx
【阿里云存储】accessKey upload.ali.accessKey accessKey
【阿里云存储】secretKey upload.ali.secretKey secretKey
【阿里云存储】bucket upload.ali.bucket bucket
【阿里云存储】fileUrl upload.ali.fileUrl https://xxxx

调用工具类插入参数

  1. AliUpload.Param param = AliUpload.createParam();
  2. param.setEndpoint("xxxx");
  3. param.setFileUrl("xxxx");
  4. param.setAccessKey("xxxx");
  5. param.setSecretKey("xxxx");
  6. param.setBucket("xxxx");
  7. genUtils.uploadAli(param);

使用

  1. File file = FileUtil.file("C:\\Users\\Administrator\\Pictures\\4.jpg");
  2. String targetPath="123456.jpg";
  3. // 上传文件
  4. FileUploadUtil.uploadFile(UploadPlatform.Ali,file,targetPath);
  5. // 过期时间
  6. int expireTime = 30;
  7. // 获取临时路径
  8. FileUploadUtil.getTempDownUrl(UploadPlatform.Ali,targetPath,expireTime);

回调

  1. @RequestMapping(value = "/callback")
  2. @ResponseBody
  3. public Map callback(HttpServletRequest request) {
  4. String fileName = request.getParameter("filename");
  5. String size = request.getParameter("size");
  6. String mimeType = request.getParameter("mimeType");
  7. String height = request.getParameter("height");
  8. String width = request.getParameter("width");
  9. // System.out.println(fileName+"size "+size+" mimeType"+mimeType);
  10. Map map = new HashMap();
  11. map.put("url",fileName);
  12. return map;
  13. }

申请参数

swo8HPNYTSBpGc2.png

Postman 上传

image-20210408164059160.png

申请 AccessKey 和 AccessKeySecret

(7 条消息) 阿里云创建 AccessKey 和 Access Key Secert_yufire 的博客 - CSDN 博客
添加权限的时候选择 AliyunOSSFullAccess 管理对象存储服务(OSS)权限
image.png

跨域问题

阿里云 - 图4

阿里云 - 图5

说明 为了您的数据安全,实际使用时,来源栏建议您填写自己需要的域名。更多配置信息请参见设置跨域访问

Authortion 重复
image-20210429151646392.png

回调

阿里云 - 图7

https://help.aliyun.com/document_detail/31927.html

图片压缩

图片处理指南:https://help.aliyun.com/document_detail/183902.html

缩放后,设置清晰度

  1. ?x-oss-process=image/resize,p_63/quality,q_90
  2. # 表示先将图片缩放到原图的63%,再设置图片相对质量为90%。

缩放,清晰度不变

  1. ?x-oss-process=image/resize,p_63

裁剪

  1. ?x-oss-process=image/circle,r_100

调整大小,下划线后面紧跟着的就是图片的宽高大小 (单位:px)

  1. ?x-oss-process=image/resize,m_lfit,h_100,w_100

设置图片清晰度最后就是清晰度0-100,数字越大,清晰度越高

  1. ?x-oss-process=image/quality,q_40

阿里云 - 图8

参考: https://blog.csdn.net/dizhi9505/article/details/101746081 https://www.jianshu.com/p/53daad28ecee

图片处理 参数 说明
图片高级压缩 format 将图片转换为HEIF或WebP M6等高压缩比格式。
图片缩放 resize 将图片缩放至指定大小。
内切圆 circle 以图片中心点为圆心,裁剪出指定大小的圆形图片。
自定义裁剪 crop 裁剪指定大小的矩形图片。
索引切割 indexcrop 按指定x或y轴的大小切分图片,之后选取其中一张图片。
圆角矩形 rounded-corners 按指定圆角大小将图片裁剪成圆角矩形。
自适应方向 auto-orient 将携带旋转参数的图片进行自适应旋转。
旋转 rotate 按指定角度以顺时针方向旋转图片。
模糊效果 blur 对图片进行模糊处理。
亮度 bright 调整图片亮度。
锐化 sharpen 对图片进行锐化处理。
对比度 contrast 调整图片对比度。
渐进显示 interlace 将JPG格式的图片调整为渐进显示。
质量变换 quality 调整JPG和WebP格式图片的质量。
格式转换 format 转换图片格式。
图片水印 watermark 为图片添加图片或文字水印。
获取图片主色调 average-hue 获取图片主色调。
获取信息 info 获取图片信息,包括基本信息、EXIF信息。

因为我后台保存多张图片都是逗号拼接的,返回给前端就出问题了,所以这里我用到了自定义样式

  1. ?x-oss-process=style/q50

好处就是改样式里面的属性不用改代码,不用重新部署

阿里云 - 图9

阿里云 - 图10

获取视频封面

  1. ?x-oss-process=video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast
  • t_ 后面配置截取多少毫秒的视频对应的画面