oss提交

This commit is contained in:
hzj
2024-09-30 09:03:19 +08:00
parent bc3a6f2fa2
commit d20dfd8a26

View File

@@ -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;
}
} }