diff --git a/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java b/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java index b177c546..01795e79 100644 --- a/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java +++ b/data/src/main/java/com/sdm/data/service/impl/MinioFileIDataFileServiceImpl.java @@ -2047,11 +2047,29 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService { log.info("saveChunkFileToLocal 合并本地文件finalLocalFilePath:{},localTempDirPath:{},getChunkTotal:{}结果:{}", finalLocalFilePath,localTempDirPath,req.getChunkTotal(),localMergeSuccess); } - // 分片文件已经上传完成,提前返回,异步合并数据 - CompletableFuture.runAsync(() -> { - asyncMerge(req.getObjectKey(),chunkBucket,tempDirPath,req.getBusinessId()); - }); + // 同步调用 + try { + Boolean merge = minioService.merge(chunkBucket, tempDirPath, chunkBucket, req.getObjectKey()); + if(!merge){ + // 删除分片临时数据 + deleteTempFileAfterFailed(tempDirPath,chunkBucket); + log.error("合并分片失败:{}",tempDirPath); + return buildFailedResponse(resp,"文件合并失败",req); + } + // 4. 合并完成后删除临时目录 + deleteTempFileAfterFailed(tempDirPath,chunkBucket); + } catch (Exception e) { + log.error("合并分片 error:{}",e.getMessage()); + }finally { + // 删除分片上传的处理中状态 + commonStatusUtil.end(CommonStatusUtil.CHUNK_UPLOAD_FILE+req.getBusinessId()); + } + asyncMerge(req.getObjectKey(),chunkBucket,tempDirPath,req.getBusinessId()); + // 分片文件已经上传完成,提前返回,异步合并数据 +// CompletableFuture.runAsync(() -> { +// asyncMerge(req.getObjectKey(),chunkBucket,tempDirPath,req.getBusinessId()); +// }); return buildSuccessResponse(resp,req,tempDirPath); } diff --git a/gateway2/src/main/resources/application-dev-100.yml b/gateway2/src/main/resources/application-dev-100.yml index ba910b81..3182a008 100644 --- a/gateway2/src/main/resources/application-dev-100.yml +++ b/gateway2/src/main/resources/application-dev-100.yml @@ -33,6 +33,15 @@ spring: - Path=/simulation/capability/** filters: - StripPrefix=2 + - id: data-service-chunk-upload + uri: lb://data + predicates: + - Path=/simulation/data/data/chunkUploadToMinio + filters: + - StripPrefix=2 + metadata: + response-timeout: 60000 + connect-timeout: 10000 - id: data-service uri: lb://data predicates: diff --git a/gateway2/src/main/resources/application-dev-190.yml b/gateway2/src/main/resources/application-dev-190.yml index 07d66865..cdab3430 100644 --- a/gateway2/src/main/resources/application-dev-190.yml +++ b/gateway2/src/main/resources/application-dev-190.yml @@ -33,6 +33,15 @@ spring: - Path=/simulation/capability/** filters: - StripPrefix=2 + - id: data-service-chunk-upload + uri: lb://data + predicates: + - Path=/simulation/data/data/chunkUploadToMinio + filters: + - StripPrefix=2 + metadata: + response-timeout: 60000 + connect-timeout: 10000 - id: data-service uri: lb://data predicates: diff --git a/gateway2/src/main/resources/application-dev-65.yml b/gateway2/src/main/resources/application-dev-65.yml index 0621d3d0..eed73b0b 100644 --- a/gateway2/src/main/resources/application-dev-65.yml +++ b/gateway2/src/main/resources/application-dev-65.yml @@ -33,6 +33,15 @@ spring: - Path=/simulation/capability/** filters: - StripPrefix=2 + - id: data-service-chunk-upload + uri: lb://data + predicates: + - Path=/simulation/data/data/chunkUploadToMinio + filters: + - StripPrefix=2 + metadata: + response-timeout: 60000 + connect-timeout: 10000 - id: data-service uri: lb://data predicates: diff --git a/gateway2/src/main/resources/application-lyric.yml b/gateway2/src/main/resources/application-lyric.yml index 79ccc412..764a2a72 100644 --- a/gateway2/src/main/resources/application-lyric.yml +++ b/gateway2/src/main/resources/application-lyric.yml @@ -33,6 +33,15 @@ spring: - Path=/simulation/capability/** filters: - StripPrefix=2 + - id: data-service-chunk-upload + uri: lb://data + predicates: + - Path=/simulation/data/data/chunkUploadToMinio + filters: + - StripPrefix=2 + metadata: + response-timeout: 60000 + connect-timeout: 10000 - id: data-service uri: lb://data predicates: diff --git a/gateway2/src/main/resources/application-yian.yml b/gateway2/src/main/resources/application-yian.yml index ea6adf97..58d0bb3e 100644 --- a/gateway2/src/main/resources/application-yian.yml +++ b/gateway2/src/main/resources/application-yian.yml @@ -33,6 +33,15 @@ spring: - Path=/simulation/capability/** filters: - StripPrefix=2 + - id: data-service-chunk-upload + uri: lb://data + predicates: + - Path=/simulation/data/data/chunkUploadToMinio + filters: + - StripPrefix=2 + metadata: + response-timeout: 60000 + connect-timeout: 10000 - id: data-service uri: lb://data predicates: