概述过程
首先项目框架中配好miniio
调用miniio方法,传正确参数
方法
上传
/**
* 上传文件
* 文件名采用uuid,避免原始文件名中带"/"符号导致下载的时候解析出现异常
*
* @param file 资源
* @param dir 文件夹 (前后不带/)
* @param rename 是否重命名 默认true
* @return R(bucketName, filename, fullName)
*/
@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Resp<FileStatVo> upload(@RequestPart("file") MultipartFile file,
@RequestParam(required = false) String dir,
@RequestParam(required = false, defaultValue = "true") boolean rename) {
String fileName = file.getOriginalFilename();
String contentType = file.getContentType();
if (rename) {
fileName = IdUtil.simpleUUID() + StrUtil.DOT + FileUtil.extName(file.getOriginalFilename());
}
String fullName = BucketConstants.BUCKET + StrUtil.SLASH + fileName;
String uploadPath = fileName;
if (StrUtil.isNotBlank(dir)) {
uploadPath = dir + StrUtil.SLASH + fileName;
fullName = BucketConstants.BUCKET + StrUtil.SLASH + uploadPath;
}
FileStatVo stat = new FileStatVo();
stat.setBucketName(BucketConstants.BUCKET);
stat.setFileName(fileName);
stat.setFullName(fullName);
try {
// minioTemplate.putObject(BucketConstants.BUCKET, uploadPath, file.getInputStream());
minioTemplate.putObject(BucketConstants.BUCKET, uploadPath, file.getInputStream(),contentType);
} catch (Exception e) {
log.error("上传失败:{}", e.getMessage(), e);
return Resp.failed("上传失败:" + e.getLocalizedMessage());
}
return Resp.ok(stat);
}
/**
* 上传文件
*
* @param bucketName bucket名称
* @param objectName 文件名称
* @param stream 文件流
* @throws Exception https://docs.minio.io/cn/java-client-api-reference.html#putObject
*/
public void putObject(String bucketName, String objectName, InputStream stream, String conType) throws Exception {
// this.putObject(bucketName, objectName, stream, stream.available(), "application/octet-stream");
this.putObject(bucketName, objectName