|
|
|
|
|
|
|
|
* @return OssFile |
|
|
* @return OssFile |
|
|
*/ |
|
|
*/ |
|
|
public OssFile putObject(MultipartFile file, String bucketName, String originalFileName, boolean deduplication, String busCode) { |
|
|
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 { |
|
|
try { |
|
|
|
|
|
if (!StringUtils.hasLength(bucketName)) { |
|
|
|
|
|
bucketName = ossProperties.getDefaultBucketName(); |
|
|
|
|
|
} |
|
|
InputStream inputStream = file.getInputStream(); |
|
|
InputStream inputStream = file.getInputStream(); |
|
|
minioClient.putObject(PutObjectArgs.builder() |
|
|
minioClient.putObject(PutObjectArgs.builder() |
|
|
.bucket(bucketName) |
|
|
.bucket(bucketName) |
|
|
|
|
|
|
|
|
.stream(inputStream, inputStream.available(), -1) |
|
|
.stream(inputStream, inputStream.available(), -1) |
|
|
.contentType(MinIoContentType.getContentType(originalFileName.substring(originalFileName.lastIndexOf(".")))) |
|
|
.contentType(MinIoContentType.getContentType(originalFileName.substring(originalFileName.lastIndexOf(".")))) |
|
|
.build()); |
|
|
.build()); |
|
|
return new OssFile(uuidFileName, originalFileName); |
|
|
|
|
|
|
|
|
return new OssFile(bucketName + StrUtil.SLASH + uuidFileName, originalFileName); |
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
log.error("MinIo 上传文件失败...{}", e.getMessage()); |
|
|
log.error("MinIo 上传文件失败...{}", e.getMessage()); |
|
|
throw new GlobalException("MinIo 上传文件失败...请联系管理员"); |
|
|
throw new GlobalException("MinIo 上传文件失败...请联系管理员"); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
ChannelModel data = imodel.getData(); |
|
|
ChannelModel data = imodel.getData(); |
|
|
MinioClient minioClient = minioBuild(data); |
|
|
MinioClient minioClient = minioBuild(data); |
|
|
String uuidFileName = deduplication ? generateOssUuidFileName("agent-issues", originalFileName, "") : generateOssFileName("agent-issues", originalFileName,""); |
|
|
|
|
|
|
|
|
String uuidFileName = deduplication ? generateOssUuidFileName(originalFileName, "") : generateOssFileName(originalFileName,""); |
|
|
try { |
|
|
try { |
|
|
InputStream inputStream = file.getInputStream(); |
|
|
InputStream inputStream = file.getInputStream(); |
|
|
minioClient.putObject(PutObjectArgs.builder() |
|
|
minioClient.putObject(PutObjectArgs.builder() |
|
|
|
|
|
|
|
|
* @param originalFilename 原始文件名 |
|
|
* @param originalFilename 原始文件名 |
|
|
* @return 、 |
|
|
* @return 、 |
|
|
*/ |
|
|
*/ |
|
|
public String generateOssUuidFileName(String bucketName, String originalFilename, String busCode) { |
|
|
|
|
|
|
|
|
public String generateOssUuidFileName(String originalFilename, String busCode) { |
|
|
// 原始文件名前加 24位uuid + "_" |
|
|
// 原始文件名前加 24位uuid + "_" |
|
|
String uuid = UUID.randomUUID().toString().replace("-", "").substring(0, 24); |
|
|
String uuid = UUID.randomUUID().toString().replace("-", "").substring(0, 24); |
|
|
if (!StringUtils.hasLength(busCode)) |
|
|
if (!StringUtils.hasLength(busCode)) |
|
|
|
|
|
|
|
|
* @param originalFilename 原始文件名 |
|
|
* @param originalFilename 原始文件名 |
|
|
* @return 、 |
|
|
* @return 、 |
|
|
*/ |
|
|
*/ |
|
|
public String generateOssFileName(String bucketName, String originalFilename, String busCode) { |
|
|
|
|
|
|
|
|
public String generateOssFileName(String originalFilename, String busCode) { |
|
|
// 原始文件名前加 24位uuid + "_" |
|
|
// 原始文件名前加 24位uuid + "_" |
|
|
if (!StringUtils.hasLength(busCode)) |
|
|
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 |
|
|
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; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return multipartFile; |
|
|
return multipartFile; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |