添加是否保留上传文件原始名参数

This commit is contained in:
hzj
2024-05-13 10:07:40 +08:00
parent 7c2fac1ce5
commit c53d2f0586

View File

@@ -335,6 +335,35 @@ public class MinIoUtils {
// 返回生成文件名、访问路径
return new MinIoUploadResDTO(minFileName, getObjectUrl(bucketName, minFileName, DEFAULT_EXPIRY));
}
/**
* @Description: 复写方法 上传方法
* param multipartFile 文件
* * @param bucketName 桶名
* * @param directory image/
* * @param flag 是否随机生成文件名
* * @return java.lang.String
* @return: com.njcn.minioss.bo.MinIoUploadResDTO
* @Author: clam
* @Date: 2024/5/13
*/
public MinIoUploadResDTO upload(MultipartFile multipartFile, String bucketName, String directory,Boolean flag) throws Exception {
if (!this.bucketExists(bucketName)) {
this.makeBucket(bucketName);
}
InputStream inputStream = multipartFile.getInputStream();
directory = Optional.ofNullable(directory).orElse("");
String minFileName = directory + minFileName(multipartFile.getOriginalFilename(),flag);
//上传文件到指定目录
instance.putObject(PutObjectArgs.builder()
.bucket(bucketName)
.object(minFileName)
.contentType(multipartFile.getContentType())
.stream(inputStream, inputStream.available(), -1)
.build());
inputStream.close();
// 返回生成文件名、访问路径
return new MinIoUploadResDTO(minFileName, getObjectUrl(bucketName, minFileName, DEFAULT_EXPIRY));
}
/**
* 文件流上传
@@ -536,8 +565,6 @@ public class MinIoUtils {
public boolean composeObjectAndRemoveChunk(String bucketName, List<String> chunkNames, String objectName) {
return composeObject(CHUNK_BUCKET, bucketName, chunkNames, objectName, DELETE_CHUNK_OBJECT);
}
/**
* @param originalFileName 原始名称
* @return java.lang.String
@@ -552,6 +579,28 @@ public class MinIoUtils {
}
/**
* @param originalFileName 原始名称
* @param flag 是否使用文件原始名
* @return java.lang.String
* @Description 生成上传文件名
*/
public String minFileName(String originalFileName,Boolean flag) {
String suffix = originalFileName;
String fileName ="";
if (originalFileName.contains(StrUtil.DOT)) {
fileName = originalFileName.substring(0,originalFileName.lastIndexOf(StrUtil.DOT));
suffix = originalFileName.substring(originalFileName.lastIndexOf(StrUtil.DOT));
}
if(flag){
return originalFileName;
}else{
return UUID.randomUUID().toString().replace(StrUtil.DASHED, SEPARATOR_STR).toUpperCase() + suffix;
}
}
/**
* 将分钟数转换为秒数
*