springcloud minio 文件上传
Posted 正怒月神
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springcloud minio 文件上传相关的知识,希望对你有一定的参考价值。
POM
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.2.1</version>
</dependency>
配置文件
#minio 文件服务器配置
minio:
hostUrl: http://localhost:9000
accessKey: admin
secretKey: admin
bucketName: myfile
Controller/Action:
单个文件上传:
//minio文件服务器参数
@Value("${minio.hostUrl}")
private String minioHostUrl;
@Value("${minio.accessKey}")
private String minioAccessKey;
@Value("${minio.secretKey}")
private String miniosecretKey;
@Value("${minio.bucketName}")
private String minioBucketName;
/**
* 单文件(上传到minio文件服务器)
*/
@RequestMapping(value = "upload", method = RequestMethod.POST)
public List<String> upload(HttpServletRequest request) throws Exception {
List<String> filePath=new ArrayList<>();
MultipartHttpServletRequest murequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> files = murequest.getFileMap();// 得到文件map对象
List<String> filePath = new ArrayList<String>();
for (MultipartFile file : files.values()) {
//源文件名
String originalFilename = file.getOriginalFilename();
//保存文件的路径(如2020/7/10/4d132f66a7b948c882e2c1649a58ab70-file1.jpg),防止文件名重复。
String saveFileName = UUID.randomUUID().toString().replace("-", "").toLowerCase()+"-"+originalFilename;
//初始化MinioClient
MinioClient minioClient = MinioClient.builder()
.endpoint(minioHostUrl)
.credentials(minioAccessKey, minioSecretKey)
.build();
//上传
minioClient.putObject(
PutObjectArgs.builder()
.bucket(minioBucketName) //桶名(文件夹名)
.stream(file.getInputStream(),file.getSize(), 5*1024*1024) //文件,大小
.object(saveFileName) //文件名
.build());
String backFileName="/"+minioBucketName+"/"+saveFileName;
filePath.add(backFileName);
}
return filePath;
}
多个文件上传:
/**
* 多文件(上传到minio文件服务器)
*/
@RequestMapping(value = "upload", method = RequestMethod.POST)
public List<String> upload(@RequestParam("file") MultipartFile[] files, HttpServletRequest request) throws Exception {
List<String> filePath = new ArrayList<>();
for (MultipartFile file : files) {
//源文件名
String originalFilename = file.getOriginalFilename();
//保存文件的路径(如2020/7/10/4d132f66a7b948c882e2c1649a58ab70.jpg)
String saveFileName = UUID.randomUUID().toString().replace("-", "").toLowerCase()+"-"+originalFilename;
//初始化MinioClient
MinioClient minioClient = MinioClient.builder()
.endpoint(minioHostUrl)
.credentials(minioAccessKey, minioSecretKey)
.build();
//上传
minioClient.putObject(
PutObjectArgs.builder()
.bucket(minioBucketName) //桶名(文件夹名)
.stream(file.getInputStream(),file.getSize(), 5*1024*1024) //文件,大小
.object(saveFileName) //文件名
.build());
String backFileName="/"+minioBucketName+"/"+saveFileName;
filePath.add(backFileName);
}
return filePath;
}
以上是关于springcloud minio 文件上传的主要内容,如果未能解决你的问题,请参考以下文章