1.审计日志问题排查
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.njcn.oss.utils;
|
||||
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import com.njcn.common.config.GeneralInfo;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.huawei.obs.util.OBSUtil;
|
||||
@@ -7,6 +8,7 @@ import com.njcn.minioss.bo.MinIoUploadResDTO;
|
||||
import com.njcn.minioss.config.MinIossProperties;
|
||||
import com.njcn.minioss.util.MinIoUtils;
|
||||
import com.njcn.oss.constant.GeneralConstant;
|
||||
import com.njcn.oss.constant.OssPath;
|
||||
import com.njcn.oss.enums.OssResponseEnum;
|
||||
import io.minio.*;
|
||||
import io.minio.errors.*;
|
||||
@@ -21,9 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
@@ -92,7 +92,7 @@ public class FileStorageUtil {
|
||||
* @param dir 服务器文件存放路径
|
||||
* @param flag 是否保留原始文件名
|
||||
*/
|
||||
public String uploadMultipart(MultipartFile multipartFile, String dir,boolean flag) {
|
||||
public String uploadMultipart(MultipartFile multipartFile, String dir, boolean flag) {
|
||||
String filePath;
|
||||
if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
|
||||
filePath = dir + minIoUtils.minFileName(multipartFile.getOriginalFilename());
|
||||
@@ -100,7 +100,7 @@ public class FileStorageUtil {
|
||||
} else {
|
||||
try {
|
||||
//把名称存入数据
|
||||
MinIoUploadResDTO minIoUploadResDTO = minIoUtils.upload(multipartFile, minIossProperties.getBucket(), dir,flag);
|
||||
MinIoUploadResDTO minIoUploadResDTO = minIoUtils.upload(multipartFile, minIossProperties.getBucket(), dir, flag);
|
||||
filePath = minIoUploadResDTO.getMinFileName();
|
||||
} catch (Exception e) {
|
||||
throw new BusinessException(OssResponseEnum.UPLOAD_FILE_ERROR);
|
||||
@@ -136,6 +136,7 @@ public class FileStorageUtil {
|
||||
|
||||
/**
|
||||
* 上传InputStream流,并指定文件的名称
|
||||
*
|
||||
* @author xuyang
|
||||
*/
|
||||
public String uploadStreamSpecifyName(InputStream inputStream, String dir, String fileName) {
|
||||
@@ -211,7 +212,7 @@ public class FileStorageUtil {
|
||||
} catch (Exception exception) {
|
||||
throw new BusinessException(OssResponseEnum.DOWNLOAD_FILE_STREAM_ERROR);
|
||||
}
|
||||
String fileType = filePath.substring(filePath.lastIndexOf('.')+1).toLowerCase();
|
||||
String fileType = filePath.substring(filePath.lastIndexOf('.') + 1).toLowerCase();
|
||||
switch (fileType) {
|
||||
case "jpg":
|
||||
case "jpeg":
|
||||
@@ -264,18 +265,19 @@ public class FileStorageUtil {
|
||||
}
|
||||
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());
|
||||
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));
|
||||
}
|
||||
|
||||
/**
|
||||
* @Description: getAllFile 获取minio指定文件夹下所有文件
|
||||
* @Param:
|
||||
* @return: java.lang.Iterable<io.minio.Result<io.minio.messages.Item>>
|
||||
* @Author: clam
|
||||
* @Date: 2024/9/27
|
||||
*/
|
||||
public List<MultipartFile> getAllFile(String bucketName, String directory) throws Exception{
|
||||
* @Description: getAllFile 获取minio指定文件夹下所有文件
|
||||
* @Param:
|
||||
* @return: java.lang.Iterable<io.minio.Result < io.minio.messages.Item>>
|
||||
* @Author: clam
|
||||
* @Date: 2024/9/27
|
||||
*/
|
||||
public List<MultipartFile> getAllFile(String bucketName, String directory) throws Exception {
|
||||
List<MultipartFile> files = new ArrayList<>();
|
||||
Iterable<Result<Item>> results = this.instance.listObjects(
|
||||
ListObjectsArgs.builder().bucket(bucketName).prefix(directory).recursive(true).build());
|
||||
@@ -284,9 +286,8 @@ public class FileStorageUtil {
|
||||
Item item = null;
|
||||
|
||||
item = result.get();
|
||||
InputStream stream = this.instance.getObject(
|
||||
GetObjectArgs.builder().bucket(bucketName).object(item.objectName()).build());
|
||||
|
||||
InputStream stream = this.instance.getObject(
|
||||
GetObjectArgs.builder().bucket(bucketName).object(item.objectName()).build());
|
||||
|
||||
|
||||
// 假设你有一个方法可以将InputStream转换为MultipartFile
|
||||
@@ -297,4 +298,38 @@ public class FileStorageUtil {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 目前只给审计日志使用
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2024/10/15
|
||||
*/
|
||||
public File getLastFile(String bucketName, String directory) throws Exception {
|
||||
File file = null;
|
||||
if (generalInfo.getBusinessFileStorage() == GeneralConstant.MINIO_OSS) {
|
||||
Iterable<Result<Item>> results = this.instance.listObjects(
|
||||
ListObjectsArgs.builder().bucket(bucketName).prefix(directory).recursive(true).build());
|
||||
Item lastItem = null;
|
||||
for (Result<Item> result : results) {
|
||||
Item item = result.get();
|
||||
if (lastItem == null) {
|
||||
lastItem = item;
|
||||
} else {
|
||||
if (item.lastModified().isAfter(lastItem.lastModified())) {
|
||||
lastItem = item;
|
||||
}
|
||||
}
|
||||
}
|
||||
InputStream stream = this.instance.getObject(
|
||||
GetObjectArgs.builder().bucket(bucketName).object(lastItem.objectName()).build());
|
||||
|
||||
file = File.createTempFile(lastItem.objectName(), "xlsx");
|
||||
FileUtil.writeFromStream(stream, file);
|
||||
}else if(generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS){
|
||||
file = obsUtil.getLastFile(OssPath.LOGBAK);
|
||||
|
||||
}
|
||||
return file;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user