Browse Source

文件名改为雪花算法生成

master
xsx 4 months ago
parent
commit
9ebfc2fe88
  1. 13
      im-platform/src/main/java/com/bx/implatform/thirdparty/MinioService.java

13
im-platform/src/main/java/com/bx/implatform/thirdparty/MinioService.java

@ -1,5 +1,6 @@
package com.bx.implatform.thirdparty; package com.bx.implatform.thirdparty;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import com.bx.implatform.util.DateTimeUtils; import com.bx.implatform.util.DateTimeUtils;
import com.bx.implatform.util.FileUtil; import com.bx.implatform.util.FileUtil;
@ -73,10 +74,8 @@ public class MinioService {
if (StringUtils.isBlank(originalFilename)) { if (StringUtils.isBlank(originalFilename)) {
throw new RuntimeException(); throw new RuntimeException();
} }
// 加入随机数,防止文件重名 // 文件名使用雪花算法生成,防止重名以及出现一些特殊字符
String fileName = FileUtil.excludeExtension(originalFilename); String fileName = IdUtil.getSnowflakeNextIdStr() + "." + FileUtil.getFileExtension(originalFilename);
fileName += "_" + RandomUtil.randomString(4);
fileName += "." + FileUtil.getFileExtension(originalFilename);
String objectName = DateTimeUtils.getFormatDate(new Date(), DateTimeUtils.PARTDATEFORMAT) + "/" + fileName; String objectName = DateTimeUtils.getFormatDate(new Date(), DateTimeUtils.PARTDATEFORMAT) + "/" + fileName;
try { try {
InputStream stream = new ByteArrayInputStream(file.getBytes()); InputStream stream = new ByteArrayInputStream(file.getBytes());
@ -102,10 +101,8 @@ public class MinioService {
* @return objectName * @return objectName
*/ */
public String upload(String bucketName, String path, String name, byte[] fileByte, String contentType) { public String upload(String bucketName, String path, String name, byte[] fileByte, String contentType) {
// 加入随机数,防止文件重名 // 文件名使用雪花算法生成,防止重名以及出现一些特殊字符
String fileName = FileUtil.excludeExtension(name); String fileName = IdUtil.getSnowflakeNextIdStr() + "." + FileUtil.getFileExtension(name);
fileName += "_" + RandomUtil.randomString(4);
fileName += "." + FileUtil.getFileExtension(name);
String objectName = DateTimeUtils.getFormatDate(new Date(), DateTimeUtils.PARTDATEFORMAT) + "/" + fileName; String objectName = DateTimeUtils.getFormatDate(new Date(), DateTimeUtils.PARTDATEFORMAT) + "/" + fileName;
try { try {
InputStream stream = new ByteArrayInputStream(fileByte); InputStream stream = new ByteArrayInputStream(fileByte);

Loading…
Cancel
Save