From 179c4d64313c9b7572778da4aaaf6c6584fe457d Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 20 五月 2025 23:48:08 +0800 Subject: [PATCH] 修改文件上传类型限制 --- springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 107 insertions(+), 9 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java index e0e70cc..67e65cc 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java +++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java @@ -1,8 +1,10 @@ package com.panzhihua.applets.config; +import com.panzhihua.common.utlis.DateUtils; import io.minio.MinioClient; import io.minio.ObjectStat; import org.apache.commons.io.IOUtils; +import org.bouncycastle.util.encoders.Base64; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; @@ -38,8 +40,7 @@ /** * 文件上传 * - * @param file - * 要上传的文件 + * @param file 要上传的文件 * @return */ public String upload(MultipartFile file, String name) { @@ -47,9 +48,9 @@ try { UUID uuid = UUID.randomUUID(); StringBuilder s = new StringBuilder(); - s.append(uuid.toString().replace("-", "")).append("/"); + s.append(DateUtils.getCurrentDateyymd()).append("-original").append("/"); MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(), - minioProperties.getSecretKey()); + minioProperties.getSecretKey()); // bucket 不存在,创建 if (!minioClient.bucketExists(minioProperties.getBucket())) { minioClient.makeBucket(minioProperties.getBucket()); @@ -70,19 +71,82 @@ } return null; } + /** * 文件上传 * - * @param file + * @param input * 要上传的文件 + * @return + */ + public String uploadInputStream(InputStream input, String name) { + if (null != input) { + try { + UUID uuid = UUID.randomUUID(); + StringBuilder s = new StringBuilder(); + s.append(DateUtils.getCurrentDateyymd()).append("/"); + MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(), + minioProperties.getSecretKey()); + if (!minioClient.bucketExists(minioProperties.getBucket())) { + minioClient.makeBucket(minioProperties.getBucket()); + } + String fileName = s.append(name).toString(); + minioClient.putObject(minioProperties.getBucket(), fileName, input, "application/octet-stream"); + StringBuilder fileUrl = new StringBuilder(minioProperties.getUrl()); + String url = fileUrl.append(fileName).toString(); + return url; + } catch (Exception e) { + e.printStackTrace(); + } + } + return null; + } + /** + * 文件上传 + * + * @param file 要上传的文件 + * @return + */ + public String uploadRetFileName(MultipartFile file, String name) { + if (null != file) { + try { + UUID uuid = UUID.randomUUID(); + StringBuilder s = new StringBuilder(); + s.append(DateUtils.getCurrentDateyymd()).append("-original").append("/"); + MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(), + minioProperties.getSecretKey()); + // bucket 不存在,创建 + if (!minioClient.bucketExists(minioProperties.getBucket())) { + minioClient.makeBucket(minioProperties.getBucket()); + } + // 得到文件流 + InputStream input = file.getInputStream(); + // 文件名 + // String fileName = uuid + "/images." + FilenameUtils.getExtension(file.getOriginalFilename()); + String fileName = s.append(name).toString(); + String contentType = file.getContentType(); + minioClient.putObject(minioProperties.getBucket(), fileName, input, "application/octet-stream"); + StringBuilder fileUrl = new StringBuilder(minioProperties.getUrl()); + String url = fileUrl.append(fileName).toString(); + return fileName; + } catch (Exception e) { + e.printStackTrace(); + } + } + return null; + } + + /** + * 文件上传 + * + * @param file 要上传的文件 * @return */ public String uploadFile(File file, String name) { if (null != file) { try { - UUID uuid = UUID.randomUUID(); StringBuilder s = new StringBuilder(); - s.append(uuid.toString().replace("-", "")).append("/"); + s.append(DateUtils.getCurrentDateyymd()).append("/"); MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(), minioProperties.getSecretKey()); // bucket 不存在,创建 @@ -118,7 +182,7 @@ InputStream inputStream; try { MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(), - minioProperties.getSecretKey()); + minioProperties.getSecretKey()); ObjectStat stat = minioClient.statObject(minioProperties.getBucket(), fileName); inputStream = minioClient.getObject(minioProperties.getBucket(), fileName); response.setContentType(stat.contentType()); @@ -146,7 +210,7 @@ byte[] bytes = new byte[0]; try { MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(), - minioProperties.getSecretKey()); + minioProperties.getSecretKey()); inputStream = minioClient.getObject(minioProperties.getBucket(), fileName); bytes = toByteArray(inputStream); } catch (Exception e) { @@ -154,4 +218,38 @@ } return bytes; } + + + /** + * 删除 + * + * @param fileName + * @return + * @throws Exception + */ + public String removeMinio(String fileName) { + try { + //创建MinioClient对象 + //fileName = "6edbdf8c2a1146ddaf4fbfcb30f804ad/72b2a44c18a54802854931a65b604576.jpg" + MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(), + minioProperties.getSecretKey()); + minioClient.removeObject(minioProperties.getBucket(), fileName); + return "success"; + } catch (Exception e) { + e.printStackTrace(); + return e.getMessage(); + } + + } + + public InputStream base64StrToInputStream(String base64string) { + ByteArrayInputStream stream = null; + try { + byte[] bytes = Base64.decode(base64string); + stream = new ByteArrayInputStream(bytes); + } catch (Exception e) { + e.printStackTrace(); + } + return stream; + } } -- Gitblit v1.7.1