admin管理员组文章数量:1122851
阿里OSS图片持久化,裁切,缩放,格式转换等
用过阿里oss图片管理的都知道,它不但能存储图片,还提供图片的处理工具如裁切,缩放,格式转换等,但是 有一个需求是,我们把原图进行裁切,或者缩放又或者格式转换后,还继续保存到oss上怎么办,这个问题我问oss的客服人员他给我说,先把图片下载下来处理完之后在上传oss 这是他给我的工单回复,我差点没吐血,oss下载上传都需要流量费的一来一回多少钱,后来我知道 oss官方有一个持久化功能,重要事情说三遍 oss持久化 , oss持久化 , oss持久化 为什么持久化,因为你把原图上传到 oss之后 在访问的时候,进行缩放 ,裁切水印 格式转换一系列操作,当然很简单你只需传参数就可以,但是有一些尺寸比较大的图片 你实时访问每次都这样会很占时间,所以才会有持久化,把些操作一次处理好 ,放到oss上
直接上源码: 当然你可以在oss官方文档上去找 也有,但是很多人不知道.
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret); // 图片处理持久化 : 裁切 StringBuilder sbStyle = new StringBuilder(); Formatter styleFormatter = new Formatter(sbStyle); String styleType = "image/crop,w_500,h_900,g_center"; styleFormatter.format("%s|sys/saveas,o_%s,b_%s", styleType,BinaryUtil.toBase64String(targetImage.getBytes()),BinaryUtil.toBase64String(bucketName.getBytes())); ProcessObjectRequest request = new ProcessObjectRequest(bucketName, sourceImage, sbStyle.toString()); GenericResult processResult = ossClient.processObject(request); String json = null; try {json = IOUtils.readStreamAsString(processResult.getResponse().getContent(), "UTF-8");processResult.getResponse().getContent().close();JSONObject jsonObject = JSON.parseObject(json);jsonObject.getString("status"); } catch (IOException e) {log.error("OSS存储封面图报错 结果" + json);e.printStackTrace(); } finally {// 关闭OSSClient。new Thread(new Runnable() {public void run() {ossClient.shutdown();}}).start(); }
本文标签: 阿里OSS图片持久化裁切缩放格式转换等
版权声明:本文标题:阿里OSS图片持久化,裁切,缩放,格式转换等 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1688324461a206279.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论