From c53d2f058628ff67075af9f320b5dac0861ba6a2 Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Mon, 13 May 2024 10:07:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=98=AF=E5=90=A6=E4=BF=9D?= =?UTF-8?q?=E7=95=99=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E5=8E=9F=E5=A7=8B?= =?UTF-8?q?=E5=90=8D=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/njcn/minioss/util/MinIoUtils.java | 53 ++++++++++++++++++- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/njcn/minioss/util/MinIoUtils.java b/src/main/java/com/njcn/minioss/util/MinIoUtils.java index 8268949..803e5d1 100644 --- a/src/main/java/com/njcn/minioss/util/MinIoUtils.java +++ b/src/main/java/com/njcn/minioss/util/MinIoUtils.java @@ -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 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; + + } + } + + /** * 将分钟数转换为秒数 *