update
This commit is contained in:
parent
6570ba9f94
commit
70842d9f8e
@ -1,14 +1,28 @@
|
|||||||
package com.ruoyi.web.controller.common;
|
package com.ruoyi.web.controller.common;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import com.ruoyi.common.annotation.Anonymous;
|
import com.ruoyi.common.annotation.Anonymous;
|
||||||
import com.ruoyi.common.config.RuoYiConfig;
|
import com.ruoyi.common.config.RuoYiConfig;
|
||||||
import com.ruoyi.common.constant.Constants;
|
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.common.utils.file.FileOperateUtils;
|
import com.ruoyi.common.utils.file.FileOperateUtils;
|
||||||
import com.ruoyi.common.utils.file.FileUtils;
|
import com.ruoyi.common.utils.file.FileUtils;
|
||||||
import com.ruoyi.common.utils.file.MimeTypeUtils;
|
import com.ruoyi.common.utils.file.MimeTypeUtils;
|
||||||
import com.ruoyi.framework.config.ServerConfig;
|
import com.ruoyi.framework.config.ServerConfig;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.Parameters;
|
import io.swagger.v3.oas.annotations.Parameters;
|
||||||
@ -16,15 +30,6 @@ import io.swagger.v3.oas.annotations.parameters.RequestBody;
|
|||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.http.MediaType;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通用请求处理
|
* 通用请求处理
|
||||||
@ -151,16 +156,9 @@ public class CommonController {
|
|||||||
if (!FileUtils.checkAllowDownload(resource)) {
|
if (!FileUtils.checkAllowDownload(resource)) {
|
||||||
throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource));
|
throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource));
|
||||||
}
|
}
|
||||||
// 本地资源路径
|
|
||||||
String localPath = RuoYiConfig.getProfile();
|
|
||||||
// 数据库资源地址
|
|
||||||
String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX);
|
|
||||||
// 下载名称
|
|
||||||
String downloadName = StringUtils.substringAfterLast(downloadPath, "/");
|
|
||||||
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
|
||||||
FileUtils.setAttachmentResponseHeader(response, resource);
|
FileUtils.setAttachmentResponseHeader(response, resource);
|
||||||
FileOperateUtils.downLoad(resource, response.getOutputStream());
|
FileOperateUtils.downLoad(resource, response.getOutputStream());
|
||||||
// FileUtils.writeBytes(downloadPath, response.getOutputStream());
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("下载文件失败", e);
|
log.error("下载文件失败", e);
|
||||||
}
|
}
|
||||||
|
@ -1,28 +1,23 @@
|
|||||||
package com.ruoyi.middleware.minio.config;
|
package com.ruoyi.middleware.minio.config;
|
||||||
|
|
||||||
import com.ruoyi.common.annotation.Anonymous;
|
import java.util.List;
|
||||||
import com.ruoyi.common.config.RuoYiConfig;
|
import java.util.Map;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import com.ruoyi.common.utils.file.FileOperateUtils;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
import com.ruoyi.common.utils.file.FileUtils;
|
|
||||||
import io.minio.*;
|
|
||||||
import io.minio.errors.*;
|
|
||||||
import io.minio.messages.Bucket;
|
|
||||||
import io.minio.messages.Item;
|
|
||||||
import jakarta.annotation.PostConstruct;
|
|
||||||
import org.apache.http.impl.io.EmptyInputStream;
|
import org.apache.http.impl.io.EmptyInputStream;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
import java.io.File;
|
import com.ruoyi.common.config.RuoYiConfig;
|
||||||
import java.io.IOException;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import java.security.InvalidKeyException;
|
import com.ruoyi.common.utils.file.FileUtils;
|
||||||
import java.security.NoSuchAlgorithmException;
|
|
||||||
import java.util.List;
|
import io.minio.BucketExistsArgs;
|
||||||
import java.util.Map;
|
import io.minio.MinioClient;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import io.minio.PutObjectArgs;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import jakarta.annotation.PostConstruct;
|
||||||
|
|
||||||
@Configuration("MinioConfiguration")
|
@Configuration("MinioConfiguration")
|
||||||
@ConditionalOnProperty(prefix = "minio", name = { "enable" }, havingValue = "true", matchIfMissing = false)
|
@ConditionalOnProperty(prefix = "minio", name = { "enable" }, havingValue = "true", matchIfMissing = false)
|
||||||
@ -61,10 +56,6 @@ public class MinioConfig {
|
|||||||
return maxSize;
|
return maxSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setMaxSize(int maxSize) {
|
|
||||||
this.maxSize = maxSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<MinioClientConfig.MinioClientEntity> getSlaveClientsList() {
|
public List<MinioClientConfig.MinioClientEntity> getSlaveClientsList() {
|
||||||
return slaveClientsList;
|
return slaveClientsList;
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,20 @@
|
|||||||
package com.ruoyi.middleware.minio.controller;
|
package com.ruoyi.middleware.minio.controller;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import com.ruoyi.common.annotation.Anonymous;
|
import com.ruoyi.common.annotation.Anonymous;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.common.utils.file.FileUtils;
|
import com.ruoyi.common.utils.file.FileUtils;
|
||||||
import com.ruoyi.middleware.minio.domain.MinioFileVO;
|
import com.ruoyi.middleware.minio.domain.MinioFileVO;
|
||||||
|
|
||||||
import com.ruoyi.middleware.minio.utils.MinioUtil;
|
import com.ruoyi.middleware.minio.utils.MinioUtil;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import okhttp3.Headers;
|
import okhttp3.Headers;
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/minio")
|
@RequestMapping("/minio")
|
||||||
|
@ -3,7 +3,6 @@ package com.ruoyi.middleware.minio.utils;
|
|||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
@ -16,7 +15,6 @@ import com.ruoyi.middleware.minio.config.MinioClientConfig;
|
|||||||
import com.ruoyi.middleware.minio.config.MinioConfig;
|
import com.ruoyi.middleware.minio.config.MinioConfig;
|
||||||
import com.ruoyi.middleware.minio.domain.MinioFileVO;
|
import com.ruoyi.middleware.minio.domain.MinioFileVO;
|
||||||
import com.ruoyi.middleware.minio.exception.MinioClientErrorException;
|
import com.ruoyi.middleware.minio.exception.MinioClientErrorException;
|
||||||
import com.ruoyi.middleware.minio.exception.MinioClientNotFundException;
|
|
||||||
|
|
||||||
import io.minio.GetObjectArgs;
|
import io.minio.GetObjectArgs;
|
||||||
import io.minio.GetObjectResponse;
|
import io.minio.GetObjectResponse;
|
||||||
@ -93,27 +91,27 @@ public class MinioUtil {
|
|||||||
* @param putObjectArgs Minio上传文件参数
|
* @param putObjectArgs Minio上传文件参数
|
||||||
* @return 返回上传成功的文件路径
|
* @return 返回上传成功的文件路径
|
||||||
*/
|
*/
|
||||||
private static String uploadFileIterator(int index, PutObjectArgs putObjectArgs) {
|
// private static String uploadFileIterator(int index, PutObjectArgs putObjectArgs) {
|
||||||
List<MinioClientConfig.MinioClientEntity> slaveClientsList = getMinioConfig().getSlaveClientsList();
|
// List<MinioClientConfig.MinioClientEntity> slaveClientsList = getMinioConfig().getSlaveClientsList();
|
||||||
if (index >= slaveClientsList.size()) {
|
// if (index >= slaveClientsList.size()) {
|
||||||
throw new MinioClientNotFundException();
|
// throw new MinioClientNotFundException();
|
||||||
}
|
// }
|
||||||
try {
|
// try {
|
||||||
MinioClientConfig.MinioClientEntity minioClientEntity = slaveClientsList.get(index);
|
// MinioClientConfig.MinioClientEntity minioClientEntity = slaveClientsList.get(index);
|
||||||
PutObjectArgs build = PutObjectArgs.builder().contentType(putObjectArgs.contentType())
|
// PutObjectArgs build = PutObjectArgs.builder().contentType(putObjectArgs.contentType())
|
||||||
.object(putObjectArgs.object())
|
// .object(putObjectArgs.object())
|
||||||
.stream(putObjectArgs.stream(), putObjectArgs.stream().available(), -1)
|
// .stream(putObjectArgs.stream(), putObjectArgs.stream().available(), -1)
|
||||||
.bucket(minioClientEntity.getDefaultBuket()).build();
|
// .bucket(minioClientEntity.getDefaultBuket()).build();
|
||||||
minioClientEntity.getClient().putObject(build);
|
// minioClientEntity.getClient().putObject(build);
|
||||||
StringBuilder url = new StringBuilder();
|
// StringBuilder url = new StringBuilder();
|
||||||
url.append(MinioConfig.prefix).append("/").append(minioClientEntity.getDefaultBuket())
|
// url.append(MinioConfig.prefix).append("/").append(minioClientEntity.getDefaultBuket())
|
||||||
.append("?").append("fileName=").append(putObjectArgs.object())
|
// .append("?").append("fileName=").append(putObjectArgs.object())
|
||||||
.append("&").append("clientName=").append(minioClientEntity.getName());
|
// .append("&").append("clientName=").append(minioClientEntity.getName());
|
||||||
return url.toString();
|
// return url.toString();
|
||||||
} catch (Exception e) {
|
// } catch (Exception e) {
|
||||||
return uploadFileIterator(index + 1, putObjectArgs);
|
// return uploadFileIterator(index + 1, putObjectArgs);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件上传
|
* 文件上传
|
||||||
|
Loading…
Reference in New Issue
Block a user