治理暂态事件、文件解析公共参数添加
This commit is contained in:
@@ -10,6 +10,8 @@ import com.njcn.minioss.config.MinIossProperties;
|
||||
import com.njcn.minioss.util.MinIoUtils;
|
||||
import com.njcn.oss.constant.GeneralConstant;
|
||||
import com.njcn.oss.enums.OssResponseEnum;
|
||||
import io.minio.MinioClient;
|
||||
import io.minio.PutObjectArgs;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.tomcat.util.http.fileupload.IOUtils;
|
||||
@@ -17,8 +19,10 @@ import org.springframework.http.MediaType;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.*;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
@@ -31,6 +35,9 @@ import java.util.UUID;
|
||||
@RequiredArgsConstructor
|
||||
public class FileStorageUtil {
|
||||
|
||||
@Resource
|
||||
private MinioClient instance;
|
||||
|
||||
private final GeneralInfo generalInfo;
|
||||
|
||||
/***
|
||||
@@ -99,6 +106,31 @@ public class FileStorageUtil {
|
||||
return filePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传InputStream流,并指定文件的名称
|
||||
* @author xuyang
|
||||
* @param inputStream
|
||||
* @param dir
|
||||
* @param fileName
|
||||
* @return
|
||||
*/
|
||||
public String uploadStreamSpecifyName(InputStream inputStream, String dir, String fileName) {
|
||||
String filePath;
|
||||
if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
|
||||
filePath = dir + minIoUtils.minFileName(fileName);
|
||||
obsUtil.uploadStream(inputStream, filePath);
|
||||
} else {
|
||||
try {
|
||||
//把名称存入数据
|
||||
MinIoUploadResDTO minIoUploadResDTO = uploadStreamSpecifyName(inputStream, minIossProperties.getBucket(), dir, fileName);
|
||||
filePath = minIoUploadResDTO.getMinFileName();
|
||||
} catch (Exception e) {
|
||||
throw new BusinessException(OssResponseEnum.UPLOAD_FILE_ERROR);
|
||||
}
|
||||
}
|
||||
return filePath;
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* 根据文件路径获取文件短期的一个url
|
||||
@@ -221,6 +253,15 @@ public class FileStorageUtil {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public MinIoUploadResDTO uploadStreamSpecifyName(InputStream inputStream, String bucketName, String directory, String fileName) throws Exception {
|
||||
if (!minIoUtils.bucketExists(bucketName)) {
|
||||
minIoUtils.makeBucket(bucketName);
|
||||
}
|
||||
directory = (String) Optional.ofNullable(directory).orElse("");
|
||||
String minFileName = directory + fileName;
|
||||
this.instance.putObject((PutObjectArgs)((io.minio.PutObjectArgs.Builder)((io.minio.PutObjectArgs.Builder)PutObjectArgs.builder().bucket(bucketName)).object(minFileName)).stream(inputStream, (long)inputStream.available(), -1L).build());
|
||||
inputStream.close();
|
||||
return new MinIoUploadResDTO(minFileName, minIoUtils.getObjectUrl(bucketName, minFileName, 60));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user