zouLearn

导航

统计

Oss图片上传的功能

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;
}
}

posted on   zou_IT  阅读(67)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示