Oss的图片上传
工具类获取oss的四个参数
String endpoint = ConstantPropertiesUtils.END_POINT;
String accessKeyId = ConstantPropertiesUtils.KEY_ID;
String accessKeySecret = ConstantPropertiesUtils.KEY_SECRET;
String bucketName = ConstantPropertiesUtils.BUCKET_NAME;
保证图片的唯一性
首先获取上传文件的文件名
String filename = file.getOriginalFilename();
加上UUID类
//获取上传的文件名
String filename = file.getOriginalFilename();
// 给文件名加上一个uuid
String s = UUID.randomUUID().toString().replaceAll("_", "");
上传到阿里云文件中指定的文件夹
给文件名前加入文件夹路径
String datePath = "guli";
//拼接
filename = datePath + "/" + filename;
完整的Service层代码
@Service
public class OssServiceImpl implements OssService {
@Override
public String upLoadAvatar(MultipartFile file) {
//工具类获取值
String endpoint = ConstantPropertiesUtils.END_POINT;
String accessKeyId = ConstantPropertiesUtils.KEY_ID;
String accessKeySecret = ConstantPropertiesUtils.KEY_SECRET;
String bucketName = ConstantPropertiesUtils.BUCKET_NAME;
//获取上传的文件名
String filename = file.getOriginalFilename();
// 给文件名加上一个uuid
String s = UUID.randomUUID().toString().replaceAll("_", "");
filename = s + filename;
// 把文件按日期分类 2022/10/21
// 获取当前日期 joda-time包中获取的时间类
// String datePath = new DateTime().toString("yyyy/MM/dd");
String datePath = "guli";
//拼接
filename = datePath + "/" + filename;
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
try {
// 上传流的创建
InputStream inputStream = file.getInputStream();
// 调用方法传参
// 1.buctname
// 2.file名称与文件名称 aa/bb
// 3.输出流
ossClient.putObject(bucketName, filename, inputStream);
} catch (IOException e) {
e.printStackTrace();
return null;
} finally {
//关闭上传对象
ossClient.shutdown();
}
//返回的路径
// https://zou-learn.oss-cn-chengdu.aliyuncs.com/guli/001.jpg
String ImageUrl = " https://" + bucketName + "." + endpoint + "/" + filename;
return ImageUrl;
}
}
标签:ConstantPropertiesUtils,String,Oss,filename,file,datePath,上传,图片
From: https://www.cnblogs.com/zouLearn/p/16815065.html