用过阿里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