From 20b74ebdcd22d28d75cac94c10c70a8fb2237b1e Mon Sep 17 00:00:00 2001 From: Diyu0904 <1819728964@qq.com> Date: Mon, 17 Mar 2025 16:24:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=96=87=E4=BB=B6=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/resource/FileController.java | 80 ++++++++++--------- 1 file changed, 42 insertions(+), 38 deletions(-) diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/FileController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/FileController.java index b02660e..87ccb36 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/FileController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/resource/FileController.java @@ -7,6 +7,7 @@ import com.mcwl.resource.domain.request.RequestFile; import com.mcwl.resource.service.impl.FileServiceImpl; import com.mcwl.web.controller.common.OssUtil; import com.obs.services.ObsClient; +import com.obs.services.exception.ObsException; import com.obs.services.model.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -285,48 +286,51 @@ public class FileController { return fileService.selectHash(hashCode,type); } -// @PostMapping("/test") -// public R test(@RequestParam File file){ -// -// // 创建上传请求 -// ObjectMetadata metadata = new ObjectMetadata(); -// metadata.setContentLength(file.length()); -// InitiateMultipartUploadRequest initiateRequest = new InitiateMultipartUploadRequest(bucketName, file.getName(), metadata); -// InitiateMultipartUploadResult initiateResult = obsClient.initiateMultipartUpload(initiateRequest); -// String uploadId = initiateResult.getUploadId(); -// -// // 分片上传 -// long partSize = 5 * 1024 * 1024; // 分片大小为5MB -// long filePosition = 0; -// int partNumber = 1; -// while (filePosition < file.length()) { -// long currentPartSize = Math.min(partSize, file.length() - filePosition); -// UploadPartRequest uploadRequest = new UploadPartRequest(); -// uploadRequest.setBucketName(bucketName); -// uploadRequest.setObjectKey(file.getName()); -// uploadRequest.setUploadId(uploadId); -// uploadRequest.setFile(file); -// uploadRequest.setPartSize(currentPartSize); -// uploadRequest.setPartNumber(partNumber); -// uploadRequest.setPosition(filePosition); -// UploadPartResult uploadResult = obsClient.uploadPart(uploadRequest); -// PartEtag partEtag = new PartEtag(uploadResult.getEtag(), uploadResult.getPartNumber()); -// partNumber++; -// filePosition += currentPartSize; -// } -// -// // 完成分片上传 -// CompleteMultipartUploadRequest completeRequest = new CompleteMultipartUploadRequest(bucketName, file.getName(), uploadId); -// obsClient.completeMultipartUpload(completeRequest); -// String key = completeRequest.getObjectKey(); -// return R.ok(key); -// } - - @PostMapping("/updateFileData") public R updateFileData(@RequestBody RequestFile requestFile){ return fileService.updateFileData(requestFile); } + + @GetMapping("/test") + public R test(@RequestParam String filePath,String objectkey){ + + try { + + UploadFileRequest request = new UploadFileRequest(bucketName, objectkey); + // 设置待上传的本地文件,localfile为待上传的本地文件路径,需要指定到具体带文件后缀的文件名 + request.setUploadFile(filePath); + // 设置分段上传时的最大并发数 + request.setTaskNum(5); + // 设置分段大小为10MB + request.setPartSize(10 * 1024 * 1024); + // 开启断点续传模式 + request.setEnableCheckpoint(true); + // 进行断点续传上传 + CompleteMultipartUploadResult result = obsClient.uploadFile(request); + + log.info("上传完成:{}",result); + System.out.println("UploadFile successfully"); + } catch (ObsException e) { + // 发生异常时可再次调用断点续传上传接口进行重新上传 + System.out.println("UploadFile failed"); + // 请求失败,打印http状态码 + System.out.println("HTTP Code:" + e.getResponseCode()); + // 请求失败,打印服务端错误码 + System.out.println("Error Code:" + e.getErrorCode()); + // 请求失败,打印详细错误信息 + System.out.println("Error Message:" + e.getErrorMessage()); + // 请求失败,打印请求id + System.out.println("Request ID:" + e.getErrorRequestId()); + System.out.println("Host ID:" + e.getErrorHostId()); + e.printStackTrace(); + } catch (Exception e) { + System.out.println("UploadFile failed"); + // 其他异常信息打印 + e.printStackTrace(); + } + + return R.ok(); + } }