|
@@ -10,7 +10,6 @@ import com.css.simulation.resource.common.configuration.minio.MinioConfiguration
|
|
|
import com.css.simulation.resource.common.configuration.minio.SubMinioClient;
|
|
|
import com.css.simulation.resource.common.util.MinioUtil;
|
|
|
import io.minio.CreateMultipartUploadResponse;
|
|
|
-import io.minio.GetPresignedObjectUrlArgs;
|
|
|
import io.minio.ListPartsResponse;
|
|
|
import io.minio.errors.*;
|
|
|
import io.minio.http.Method;
|
|
@@ -39,9 +38,6 @@ public class MinioController {
|
|
|
@Resource
|
|
|
private MinioConfiguration minioConfiguration;
|
|
|
|
|
|
- @Resource(name = "minioClientPublic")
|
|
|
- private SubMinioClient minioClientPublic;
|
|
|
-
|
|
|
|
|
|
@PostMapping("/hello")
|
|
|
public String hello() {
|
|
@@ -150,46 +146,45 @@ public class MinioController {
|
|
|
@RequestMapping("/createMultipartUpload")
|
|
|
@ResponseBody
|
|
|
public ResponseBodyVO<Map<String, Object>> createMultipartUpload(@RequestBody Map<String, String> paramMap) throws Exception {
|
|
|
- String objectName = paramMap.get("objectName");
|
|
|
- String chunkSize = paramMap.get("chunkSize");
|
|
|
- String type = paramMap.get("type");
|
|
|
- if (ObjectUtil.isNull(objectName) || ObjectUtil.isNull(chunkSize) || ObjectUtil.isNull(type)) {
|
|
|
- return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "请求参数缺失!");
|
|
|
- }
|
|
|
- Integer nowTime = TimeUtil.getRq(new Date(), 0);
|
|
|
- if (type.equals(DictConstants.ALGORITHM_FILE)) {
|
|
|
- objectName = "algorithm/" + nowTime + "/" + objectName;
|
|
|
- }
|
|
|
- Map<String, Object> result = new HashMap<>();//结果数据
|
|
|
- CreateMultipartUploadResponse multipartUpload = minioClientPrivate.createMultipartUpload(minioConfiguration.getBucketName(), null, objectName, null, null);
|
|
|
-// CreateMultipartUploadResponse multipartUpload = minioClientPublic.createMultipartUpload(minioConfiguration.getBucketName(), null, objectName, null, null);
|
|
|
- String uploadId = multipartUpload.result().uploadId();
|
|
|
- List<String> UrlList = new LinkedList<>();
|
|
|
- Map<String, String> queryParam = new HashMap<>();
|
|
|
- queryParam.put("uploadId", uploadId);
|
|
|
- int size = Integer.parseInt(chunkSize);
|
|
|
- for (int i = 1; i <= size; i++) {
|
|
|
- queryParam.put("partNumber", String.valueOf(i));
|
|
|
-// String presignedObjectUrl = minioClientPublic.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder()
|
|
|
-// .method(Method.PUT)
|
|
|
-// .bucket(minioConfiguration.getBucketName())
|
|
|
-// .object(objectName)
|
|
|
-// .expiry(60 * 60)//上传URL有效期
|
|
|
-// .extraQueryParams(queryParam)
|
|
|
-// .build());
|
|
|
- String presignedObjectUrl = minioClientPrivate.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder()
|
|
|
- .method(Method.PUT)
|
|
|
- .bucket(minioConfiguration.getBucketName())
|
|
|
- .object(objectName)
|
|
|
- .expiry(60 * 60)//上传URL有效期
|
|
|
- .extraQueryParams(queryParam)
|
|
|
- .build());
|
|
|
- UrlList.add(presignedObjectUrl);
|
|
|
+ try {
|
|
|
+ String objectName = paramMap.get("objectName");
|
|
|
+ String chunkSize = paramMap.get("chunkSize");
|
|
|
+ String type = paramMap.get("type");
|
|
|
+ if (ObjectUtil.isNull(objectName) || ObjectUtil.isNull(chunkSize) || ObjectUtil.isNull(type)) {
|
|
|
+ return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "请求参数缺失!");
|
|
|
+ }
|
|
|
+ Integer nowTime = TimeUtil.getRq(new Date(), 0);
|
|
|
+ if (type.equals(DictConstants.ALGORITHM_FILE)) {
|
|
|
+ objectName = "algorithm/" + nowTime + "/" + objectName;
|
|
|
+ }
|
|
|
+ Map<String, Object> result = new HashMap<>();//结果数据
|
|
|
+ CreateMultipartUploadResponse multipartUpload = minioClientPrivate.createMultipartUpload(minioConfiguration.getBucketName(), null, objectName, null, null);
|
|
|
+ String uploadId = multipartUpload.result().uploadId();
|
|
|
+ List<String> UrlList = new LinkedList<>();
|
|
|
+ Map<String, String> queryParam = new HashMap<>();
|
|
|
+ queryParam.put("uploadId", uploadId);
|
|
|
+ int size = Integer.parseInt(chunkSize);
|
|
|
+ for (int i = 1; i <= size; i++) {
|
|
|
+ queryParam.put("partNumber", String.valueOf(i));
|
|
|
+ // 将 url 中的内网ip更换称外网ip
|
|
|
+ String presignedObjectUrl = MinioUtil.getPublicPreviewUrl2(
|
|
|
+ minioClientPrivate,
|
|
|
+ Method.PUT,
|
|
|
+ minioConfiguration.getBucketName(),
|
|
|
+ objectName,
|
|
|
+ queryParam,
|
|
|
+ minioConfiguration.getEndpointPrivate(),
|
|
|
+ minioConfiguration.getEndpointPublic()
|
|
|
+ );
|
|
|
+ UrlList.add(presignedObjectUrl);
|
|
|
+ }
|
|
|
+ result.put("uploadId", uploadId);
|
|
|
+ result.put("uploadUrls", UrlList);
|
|
|
+ result.put("objectName", objectName);
|
|
|
+ return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, result);
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
}
|
|
|
- result.put("uploadId", uploadId);
|
|
|
- result.put("uploadUrls", UrlList);
|
|
|
- result.put("objectName", objectName);
|
|
|
- return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, result);
|
|
|
}
|
|
|
|
|
|
@RequestMapping("/completeMultipartUpload")
|