【SpringBoot实战】基于阿里云实现文件上传
2023-12-21 22:12:11
【SpringBoot实战】基于阿里云实现文件上传
在实际项目开发中,不可避免地会使用到阿里云OSS进行文件存储。尽管阿里云有详细的开发文档,但本篇博客的目的是让我们能够用简明的代码快速实现这个功能。
引入依赖
<dependencies>
<!-- 阿里云oss依赖 -->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.9.1</version>
</dependency>
<!-- 日期工具栏依赖 -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.1</version>
</dependency>
</dependencies>
文件上传
public String fileUpload(MultipartFile file) {
String endpoint = "endpoint"; // 如:oss-cn-shanghai.aliyuncs.com
String keyId = "keyId";
String keySecret = "keySecret";
String bucketName = "bucketName"; // bucket名称
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, keyId, keySecret);
try {
InputStream inputStream = file.getInputStream();
// 文件实际名称
String filename = file.getOriginalFilename();
// 使用uuid确保文件名唯一
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
// 对上传文件进行分组,根据当前年/月/日
String date = new DateTime().toString("yyyy/MM/dd");
filename = date + "/" + uuid + filename;
// 创建PutObjectRequest对象
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, filename, inputStream);
// 设置该属性可以返回response。如果不设置,则返回的response为空
putObjectRequest.setProcess("true");
// 上传文件
PutObjectResult result = ossClient.putObject(putObjectRequest);
// 返回文件的url
return result.getResponse().getUri();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
return null;
}
文章来源:https://blog.csdn.net/weixin_53065229/article/details/135140394
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!