使用阿里云对象存储上传图片后,在浏览器中访问返回的url地址,直接提示下载,不是预览
不想要的效果:
想要效果:
业务逻辑层就是ServiceImpl层
之前代码:
package com.ren.oss.service.impl;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.ObjectMetadata;
import com.aliyun.oss.model.PutObjectRequest;
import com.ren.oss.service.OssService;
import com.ren.oss.utils.ConstantPropertiesUtils;
import org.joda.time.DateTime;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.util.UUID;
/**
* @author 怜儿
* @create 2021-01-22 1:01
**/
@Service
public class OssServiceImpl implements OssService {
/**
* Service实现上传头像到OSS
* @param file
* @return
*/
@Override
public String uploadFileAvatar(MultipartFile file) {
// 1.通过工具类获取常量值
String endPoint = ConstantPropertiesUtils.END_POINT;
String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;
String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;
String bucketName = ConstantPropertiesUtils.BUCKET_NAME;
try {
// 2.创建OSS实例
OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, accessKeySecret);
// 3.获取上传的文件的输入流
InputStream inputStream = file.getInputStream();
// 4.获取文件名称
String fileName = file.getOriginalFilename();
/**
* 5.调用oss方法实现上传
* 第一个参数 Bucket名称
* 第二个参数 上传oss文件路径和名称 aa/bb/1.jpg
* 第三个参数 上传文件的输入流
*/
// 6.在文件名称里面添加随机唯一值,使用UUID生成
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
fileName = uuid + fileName;
// 7.把文件按照日期进行分类
// 获取当前日期
String datePath = new DateTime().toString