oss提交
This commit is contained in:
@@ -8,12 +8,14 @@ import com.njcn.minioss.config.MinIossProperties;
|
|||||||
import com.njcn.minioss.util.MinIoUtils;
|
import com.njcn.minioss.util.MinIoUtils;
|
||||||
import com.njcn.oss.constant.GeneralConstant;
|
import com.njcn.oss.constant.GeneralConstant;
|
||||||
import com.njcn.oss.enums.OssResponseEnum;
|
import com.njcn.oss.enums.OssResponseEnum;
|
||||||
import io.minio.MinioClient;
|
import io.minio.*;
|
||||||
import io.minio.PutObjectArgs;
|
import io.minio.errors.*;
|
||||||
|
import io.minio.messages.Item;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.tomcat.util.http.fileupload.IOUtils;
|
import org.apache.tomcat.util.http.fileupload.IOUtils;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.mock.web.MockMultipartFile;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
@@ -22,6 +24,8 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
import java.io.BufferedOutputStream;
|
import java.io.BufferedOutputStream;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -116,7 +120,7 @@ public class FileStorageUtil {
|
|||||||
public String uploadStream(InputStream inputStream, String dir, String fileName) {
|
public String uploadStream(InputStream inputStream, String dir, String fileName) {
|
||||||
String filePath;
|
String filePath;
|
||||||
if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
|
if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
|
||||||
filePath = dir + minIoUtils.minFileName(fileName,true);
|
filePath = dir + minIoUtils.minFileName(fileName);
|
||||||
obsUtil.uploadStream(inputStream, filePath);
|
obsUtil.uploadStream(inputStream, filePath);
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
@@ -263,5 +267,33 @@ public class FileStorageUtil {
|
|||||||
inputStream.close();
|
inputStream.close();
|
||||||
return new MinIoUploadResDTO(minFileName, minIoUtils.getObjectUrl(bucketName, minFileName, 60));
|
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{
|
||||||
|
List<MultipartFile> files = new ArrayList<>();
|
||||||
|
Iterable<Result<Item>> results = this.instance.listObjects(
|
||||||
|
ListObjectsArgs.builder().bucket(bucketName).prefix(directory).recursive(true).build());
|
||||||
|
|
||||||
|
for (Result<Item> result : results) {
|
||||||
|
Item item = null;
|
||||||
|
|
||||||
|
item = result.get();
|
||||||
|
InputStream stream = this.instance.getObject(
|
||||||
|
GetObjectArgs.builder().bucket(bucketName).object(item.objectName()).build());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 假设你有一个方法可以将InputStream转换为MultipartFile
|
||||||
|
MultipartFile multipartFile = new MockMultipartFile(item.objectName(), item.objectName(), "text/plain", stream);
|
||||||
|
files.add(multipartFile);
|
||||||
|
}
|
||||||
|
return files;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user