소스 검색

文件上传服务

master
qiubh 1 주 전
부모
커밋
28666604ec
1개의 변경된 파일15개의 추가작업 그리고 9개의 파일을 삭제
  1. 15
    9
      src/main/java/com/taiji/system/oss/MinIoTemplate.java

+ 15
- 9
src/main/java/com/taiji/system/oss/MinIoTemplate.java 파일 보기

@@ -90,11 +90,16 @@ public class MinIoTemplate {
* @return OssFile
*/
public OssFile putObject(MultipartFile file, String bucketName, String originalFileName, boolean deduplication, String busCode) {
if (!StringUtils.hasLength(bucketName)) {
bucketName = ossProperties.getDefaultBucketName();
List<String> allowedExtensions = List.of("jpg", "jpeg", "png", "gif", "doc", "docx", "pdf", "csv", "xls", "xlsx");
String fileExtension = originalFileName.substring(originalFileName.lastIndexOf(".") + 1);
if (!allowedExtensions.contains(fileExtension)) {
throw new GlobalException("文件类型错误");
}
String uuidFileName = deduplication ? generateOssUuidFileName(bucketName, originalFileName, busCode) : generateOssFileName(bucketName, originalFileName, busCode);
String uuidFileName = deduplication ? generateOssUuidFileName(originalFileName, busCode) : generateOssFileName(originalFileName, busCode);
try {
if (!StringUtils.hasLength(bucketName)) {
bucketName = ossProperties.getDefaultBucketName();
}
InputStream inputStream = file.getInputStream();
minioClient.putObject(PutObjectArgs.builder()
.bucket(bucketName)
@@ -102,7 +107,7 @@ public class MinIoTemplate {
.stream(inputStream, inputStream.available(), -1)
.contentType(MinIoContentType.getContentType(originalFileName.substring(originalFileName.lastIndexOf("."))))
.build());
return new OssFile(uuidFileName, originalFileName);
return new OssFile(bucketName + StrUtil.SLASH + uuidFileName, originalFileName);
} catch (Exception e) {
log.error("MinIo 上传文件失败...{}", e.getMessage());
throw new GlobalException("MinIo 上传文件失败...请联系管理员");
@@ -134,7 +139,7 @@ public class MinIoTemplate {
}
ChannelModel data = imodel.getData();
MinioClient minioClient = minioBuild(data);
String uuidFileName = deduplication ? generateOssUuidFileName("agent-issues", originalFileName, "") : generateOssFileName("agent-issues", originalFileName,"");
String uuidFileName = deduplication ? generateOssUuidFileName(originalFileName, "") : generateOssFileName(originalFileName,"");
try {
InputStream inputStream = file.getInputStream();
minioClient.putObject(PutObjectArgs.builder()
@@ -187,7 +192,7 @@ public class MinIoTemplate {
* @param originalFilename 原始文件名
* @return 、
*/
public String generateOssUuidFileName(String bucketName, String originalFilename, String busCode) {
public String generateOssUuidFileName(String originalFilename, String busCode) {
// 原始文件名前加 24位uuid + "_"
String uuid = UUID.randomUUID().toString().replace("-", "").substring(0, 24);
if (!StringUtils.hasLength(busCode))
@@ -202,12 +207,12 @@ public class MinIoTemplate {
* @param originalFilename 原始文件名
* @return 、
*/
public String generateOssFileName(String bucketName, String originalFilename, String busCode) {
public String generateOssFileName(String originalFilename, String busCode) {
// 原始文件名前加 24位uuid + "_"
if (!StringUtils.hasLength(busCode))
return bucketName + StrUtil.SLASH + DateUtil.format(new Date(), "yyyyMMdd") + StrUtil.SLASH + originalFilename;
return DateUtil.format(new Date(), "yyyyMMdd") + StrUtil.SLASH + originalFilename;
else
return bucketName + StrUtil.SLASH + DateUtil.format(new Date(), "yyyyMMdd") + StrUtil.SLASH + busCode + StrUtil.SLASH + originalFilename;
return DateUtil.format(new Date(), "yyyyMMdd") + StrUtil.SLASH + busCode + StrUtil.SLASH + originalFilename;
}

/**
@@ -355,4 +360,5 @@ public class MinIoTemplate {

return multipartFile;
}

}

Loading…
취소
저장